1.读写文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
//需要加的头文件
#include <QFileDialog>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
//读取文件按钮的槽函数
void MainWindow::on_read_clicked()
{
//打开文件对话框
QString fileName = QFileDialog::getOpenFileName(this,"打开文件测试","D://","*.txt");
//将文件名设置在文本框上
ui->filename->setText(fileName);
//设置文件名称
QFile file(fileName);
//打开文件
file.open(QIODevice::ReadOnly | QIODevice::Text);
//读文件
while(!file.atEnd()){//一行一行直接读取文件
QString line = file.readLine();
ui->fileContent->appendPlainText(line);
}
//关闭文件
file.close();
}
//编辑文件按钮的槽函数
void MainWindow::on_write_clicked()
{
//打开文件对话框
QString fileName = QFileDialog::getOpenFileName(this,"打开文件测试","D://","*.txt");
//将文件名设置在文本框上
ui->filename->setText(fileName);
//设置文件名称
QFile file(fileName);
//打开文件
file.open(QIODevice::WriteOnly | QIODevice::Text);
//写文件
QString content = ui->fileContent->toPlainText();
file.write(content.toStdString().c_str());
//关闭文件
file.close();
}
2.UDP通信
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QUdpSocket>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
//声明槽函数
private slots:
//显示收到的数据的槽函数
void read();
//发送数据的槽函数
void on_send_clicked();
private:
Ui::MainWindow *ui;
//声明UDP对象
QUdpSocket* udp;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QHostAddress>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//创建UDP对象
udp = new QUdpSocket(this);
//绑定UDP对象(本程序)
udp->bind(QHostAddress("127.0.0.1"),quint16(8000));
//信号槽
connect(udp,&QIODevice::readyRead,this,&MainWindow::read);
}
MainWindow::~MainWindow()
{
delete ui;
}
//显示收到的数据
void MainWindow::read()
{
//读取收到的数据
QByteArray acceptMSG;
while(udp->hasPendingDatagrams()){
acceptMSG.resize(udp->pendingDatagramSize());
udp->readDatagram(acceptMSG.data(),acceptMSG.size());
//显示数据
//readContent收数据文本框对象名
ui->readContent->appendPlainText(acceptMSG.toStdString().c_str());
}
}
void MainWindow::on_send_clicked()
{
//获取发送的内容
QString content = ui->sendContent->toPlainText();
//发送数据
udp->writeDatagram(content.toStdString().c_str(),
QHostAddress(ui->ip->text()),quint16(ui->port->text().toInt()));
}