工程源码:https://github.com/zhangfls/QT_UartAnalysisTool
上一篇:
QT实现串口调试助手(二)
下面开始实现串口调试助手的一些附加功能:
一、日志保存读取
1、引入文件操作相关头文件
#include <QDir>
#include <QFileInfo>
#include <QFileDialog>
2、增加两个按钮,一个保存、一个读取
3、增加保存按钮触发槽函数
void MainWindow::on_saveDataButton_clicked()
{
QString curPath = QDir::currentPath(); //获取系统当前目录
QString dlgTitle = "另存为一个文件"; //对话框标题
QString filter = "文本文件(*.txt);;所有文件(*.*);;h文件(*.h)"; //文件过滤器
QString aFileName = QFileDialog::getSaveFileName(this,dlgTitle,curPath,filter);
if (aFileName.isEmpty())
return;
saveTextByIODevice(aFileName);
}
4、通过IOdevice实现将文本框内数据输出到文本中保存
bool MainWindow::saveTextByIODevice(const QString &aFileName)
{
QFile aFile(aFileName);
if (!aFile.open(QIODevice::WriteOnly | QIODevice::Text))
return false;
QString str = ui->uartReadPlain->toPlainText(); //整个内容作为字符串
QByteArray strBytes = str.toUtf8(); //转换为字节数组
aFile.write(strBytes,strBytes.length()); //写入文件
aFile.close();
ui->uartReadPlain->clear();
send_buf_len = 0;
rec_buf_len = 0;
ui->TXLenLabel->setText("0bytes");
ui->RXLenLabel->setText("0bytes");
QMessageBox::information(NULL, "提示", "保存完成\r\n");
return true;
}
5、增加载入日志按钮触发槽函数
void MainWindow::on_readLogButton_clicked()
{
QString curPath=QDir::currentPath(); //获取系统当前目录
QString dlgTitle="打开文件"; //对话框标题
QString filter="文本文件(*.txt);;程序文件(*.h *.cpp);;所有文件(*.*)"; //文件过滤器
QString aFileName=QFileDialog::getOpenFileName(this,dlgTitle,curPath,filter);
if (aFileName.isEmpty())
return;
openTextByIODevice(aFileName);
}
6、通过IOdevice实现将文本内容读取出来加载到界面文本框中
bool MainWindow::openTextByIODevice(const QString &aFileName)
{
QFile aFile(aFileName);
if (!aFile.exists()) //文件不存在
return false;
if (!aFile.open(QIODevice::ReadOnly | QIODevice::Text))
return false;
ui->uartReadPlain->insertPlainText(QString(aFile.readAll()));
aFile.close();
return true;
}
二、QSS样式载入
1、可以通过载入QSS文件定义界面样式,至于具体样式,需要根据需求自行用QSS语法做处理,或者套用一些模板。
QFile qss("qss/styleDark1.qss");
if(qss.open(QFile::ReadOnly))
{
qDebug()<<"qss load";
QTextStream filetext(&qss);
QString stylesheet = filetext.readAll();
this->setStyleSheet(stylesheet);
qss.close();
}
2、使用QSS后可以界面空间控件和背景个性化:
三、图标修改
1、在项目.pro文件中添加 ,等式右值为自定义文件名
RC_FILE = logo.rc
2、在项目主目录新建一个叫logo.rc的文件,内容:
IDI_ICON1 ICON DISCARDABLE "logo.ico"
这个logo.ico是自己定义的文件名
3、在项目主目录加入图标文件logo.ico,具体ico格式文件用工具自行生成。
4、运行可以看到loc已经发生变化
下一篇: