Código fuente del proyecto: https://github.com/zhangfls/QT_UartAnalysisTool
Anterior:
QT implementa el asistente de depuración en serie (2)
Lo siguiente comienza a realizar algunas funciones adicionales del asistente de depuración en serie:
1. Registro guardar y leer
1. Introduzca archivos de encabezado relacionados con las operaciones de archivos.
#include <QDir>
#include <QFileInfo>
#include <QFileDialog>
2. Agregue dos botones, uno para guardar y otro para leer
3. Agregue el botón de guardar para activar la función de ranura
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. Envíe los datos del cuadro de texto al texto y guárdelo a través de 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. Agregue el botón de registro de carga para activar la función de ranura
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. Lea el contenido del texto y cárguelo en el cuadro de texto de la interfaz a través de 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;
}
Dos, carga de estilo QSS
1. Puede definir el estilo de la interfaz cargando el archivo QSS En cuanto al estilo específico, debe usar la sintaxis QSS para procesarlo de acuerdo a sus necesidades, o aplicar algunas plantillas.
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. Después de usar QSS, los controles de espacio de la interfaz y el fondo se pueden personalizar:
Tres, modificación de iconos
1. Agregue el archivo .pro del proyecto, el valor correcto de la ecuación es el nombre del archivo personalizado
RC_FILE = logo.rc
2. Cree un nuevo archivo llamado logo.rc en el directorio principal del proyecto, con el contenido:
IDI_ICON1 ICON DISCARDABLE "logo.ico"
Este logo.ico es el nombre de archivo definido por usted mismo
3. Agregue el archivo de icono logo.ico al directorio principal del proyecto y use la herramienta para generar el archivo de formato ico específico.
4. Ejecutar y verá que la locomotora ha cambiado.
Próximo:
QT realiza el asistente de depuración en serie (cuatro): configuración de tema, panel de comando