13.Qt 文件的读和写,样式表文件的读用

目录

前言:

技能:

内容:

1. 界面

2.信号槽

①浏览按键

②保存按键

③加载样式按键

参考:


前言:

上一篇文章说明了如何弹窗选取文件并在Qlabel中显示文件内容

12.QT文件对话框 文件的弹窗选择-QFileDialog

这篇在此基础上完成反向的从Qt向文件的写入,以及读取Qt样式表文件并作用到界面


技能:

文件打开

plain text edit控件的加行与读取

样式表文件的代码读取使用

内容:


1. 界面

13.Qt 文件的读和写,样式表文件的读用_第1张图片

UI不用多说,三个pushbutton,上面一个line edit,下面一个可以显示多行内容的plain text edit

2.信号槽
①浏览按键
void Widget::on_pushButton_clicked()
{
    QString filename = QFileDialog::getOpenFileName(this, "弹窗标题",
                                                    "C://","*.txt");
    ui->lineEdit->setText(filename);

    QFile file(filename);
    if(!file.open(QIODevice::ReadOnly|QIODevice::Text))
        return;

    while(!file.atEnd()){
        QString line=file.readLine();
        ui->plainTextEdit->appendPlainText(line);
    }
    file.close();
}

代码内容依次解释为

先和上次一样的弹出对话框选取.txt文件,更详细解释可以看上一篇内容

然后把文件的路径在line edit显示一下,不是必要的,只是更有逼格

再打开文件,以只读的方式打开TEXT文件

最后一行一行的读出文件内容并添加到多行显示的 plain text edit模块中,直到文件结束

关闭文件

效果展示13.Qt 文件的读和写,样式表文件的读用_第2张图片

②保存按键
void Widget::on_pushButton_2_clicked()
{
    QFile file(ui->lineEdit->text());
    if(!file.open(QIODevice::WriteOnly|QIODevice::Text))
        return;

    QString context=ui->plainTextEdit->toPlainText();
    const char *STemp=context.toStdString().c_str();
    int len=strlen(STemp);

    if(len>0)
        file.write(STemp,len);
    file.flush();
    file.close();
}

首先以只写的方式打开 line edit里面路径对应的文件

然后把plain text edit里面的所有内容读到context中保存

进行类型转换成const char *型的STemp

读取文本长度

最后全部写进文件

冲刷缓冲区

关闭文件

③加载样式按键
void Widget::on_pushButton_3_clicked()
{
    QString filename=QFileDialog::getOpenFileName(this,"样式表对话框","D://","*.css");
    ui->lineEdit->setText(filename);
    QFile stylefile(filename);
    if(stylefile.open(QFile::ReadOnly)){
        QTextStream stream(&stylefile);
        QString stylesheet=stream.readAll();
        this->setStyleSheet(stylesheet);
    }
    stylefile.close();
}

 首先选取.css的样式表文件

line edit中显示文件路径

初始化QFile文件

以只读的形式打开文件,转换类型成 QTextStream,然后读取全部再转换成QString,最后使用setStyleSheet()函数实现

最后关闭文件

样式表知识可以参考链接1

参考:

【Qt学习系列】11.Qt样式表Qss(2)

【Qt学习系列】13.Qt文件读写

你可能感兴趣的:(QT学习记录与资源提供,qt,开发语言,c++,visualstudio,qt6.3)