QtApplets-实时读取配置文件

简介: QtApplets-实时读取配置文件

image.pngQtApplets-实时读取配置文件

今天测试小姐姐跑过来,弱弱的问我为什么程序修改了配置文件没有生效,必须重新启动程序才可以,经过我们一番友好的沟通后,测试小姐姐表示要修复一下这个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();
    }
}

image.pngimage.png

目录
相关文章
|
算法 Linux 开发者
CMake深入解析:打造高效动态链接库路径设置
CMake深入解析:打造高效动态链接库路径设置
905 0
|
API 数据安全/隐私保护
如何使用Postman 测试Https 网站?
大家好,我是阿萨。 昨天我们学习了Postman 导入导出API 的用法。针对日常工作测试工作的最基本用法就介绍完了。
1441 0
如何使用Postman 测试Https 网站?
|
移动开发
Qt自定义控件之仪表盘的完整实现
Qt自定义控件之仪表盘的完整实现
|
测试技术
QT --- VS2017+Qt5.12 编译报错【E2512 功能测试宏的参数必须是简单标识符 】的解决方法
QT --- VS2017+Qt5.12 编译报错【E2512 功能测试宏的参数必须是简单标识符 】的解决方法
1241 0
|
JSON API 数据格式
深入浅出:使用Python实现一个简单的RESTful API
【8月更文挑战第51天】本文将引导读者理解RESTful API的基本原理,并通过一个简易的实例展示如何利用Python的Flask框架快速搭建一个RESTful服务。文章以通俗易懂的语言,结合代码示例,逐步讲解API的设计、实现和测试过程,旨在帮助初学者掌握RESTful API的开发方法。
733 11
|
Java 编译器 数据库
异步日志方案——spdlog
异步日志方案——spdlog
|
算法 C++
C++中的友元类(Friend Classes)技术详解
C++中的友元类(Friend Classes)技术详解
721 0
|
Apache
Axure rp9 引入Echarts图表 |手动引入图表 Apache Echarts
Axure rp9 引入Echarts图表 |手动引入图表 Apache Echarts
1100 1
|
网络协议 安全 Shell
如何有效查看端口可达性
如何有效查看端口可达性
357 0
|
存储 编译器 数据库
【C++ 包装器类 std::tuple】全面入门指南:深入理解并掌握C++ 元组 std::tuple 的实用技巧与应用(一)
【C++ 包装器类 std::tuple】全面入门指南:深入理解并掌握C++ 元组 std::tuple 的实用技巧与应用
1004 0

热门文章

最新文章