QtApplets-实时读取配置文件
今天测试小姐姐跑过来,弱弱的问我为什么程序修改了配置文件没有生效,必须重新启动程序才可以,经过我们一番友好的沟通后,测试小姐姐表示要修复一下这个BUG那么就开始搞起来。
文章目录
QtApplets-实时读取配置文件
1 读取配置文件
2 实现'实时'读取
3 效果演示
☞ 源码
关键字: QTimer、QSetting、ini文件、实时读取、Qt
1 读取配置文件
这里不做深层的内容,仅仅研究读取的问题,这个很简单。直接上代码,只有一句是有用的,下面那一句是用来在界面显示的。
void Widget::readConfig() { QSettings *config = new QSettings("./config.ini",QSettings::IniFormat); config->beginGroup("TestNode"); ui->textBrowser->append(config->value("TEST").toString()); config->endGroup(); }
2 实现’实时’读取
其实说是实时读取,还不如说是定时读取呢,这里我使用了定时器实现,不知道是不是我没有仔细学习QSettings
类,是不是应该有部分代码实时可以实时检测配置文件是否发生改变呢,这里贴上完整代码
#include "widget.h" #include "ui_widget.h" #include <QDebug> #include <QVariant> Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); this->setWindowTitle("QSettingTimer"); mTimer = new QTimer; connect(mTimer,&QTimer::timeout,this,&Widget::readConfig); } Widget::~Widget() { mTimer->stop(); delete mTimer; mTimer = nullptr; delete ui; } void Widget::on_pushButton_clicked() { readConfig(); } void Widget::readConfig() { QSettings *config = new QSettings("./config.ini",QSettings::IniFormat); config->beginGroup("TestNode"); ui->textBrowser->append(config->value("TEST").toString()); config->endGroup(); } void Widget::on_checkBox_stateChanged(int arg1) { if(arg1 != 0) { mTimer->start(1000); } else { if(mTimer->isActive()) mTimer->stop(); } }