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

目录

前言:

技能:

内容:

1. 界面

2.信号槽

①浏览按键

②保存按键

③加载样式按键

参考:


前言:

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

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

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


技能:

文件打开

plain text edit控件的加行与读取

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

内容:


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模块中,直到文件结束

关闭文件

效果展示

②保存按键
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文件读写

  • 21
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

都是报错快CV吧

还能打赏?好活当赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值