QT implementa el asistente de depuración en serie (3): guardar registro, cargar estilo QSS

 

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

 

Supongo que te gusta

Origin blog.csdn.net/zhangfls/article/details/109841886
Recomendado
Clasificación