Qt配置文件ini之QSettings

QT:QSettings配置文件读取ini

情景:用户想每次打开之后还是上次的配置,每次都需要配置非常麻烦!

程序猿(内心):你是方便了,我还得加代码keke.

configuration.ini
[section]
key = val

Ps:我们可以直接根据key值来获取val值,当如果有多个key值是重复的那么我们可以通过设置section来区分相同的key,并取出自己想要key的val值。

image-20230822162026621

小技巧 - 把读取配置文件放到构造里面,写配置文件放到析构里面这样就可以启动程序还原上次的配置关闭程序就可以保存当前配置

代码实现

核心代码
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 小技巧 - 把读取配置文件放到构造里面,写配置文件放到析构里面这样就可以启动程序还原上次的配置关闭程序就可以保存当前配置

    /*
        会在程序的运行的根目录创建一个名为configuration后缀为ini 的文件 configuration.ini
        configuration.ini
        [section]
        key = val
    */
    // 配置文件 名、格式
    QSettings settings("configuration.ini", QSettings::IniFormat);

    // 如没有重复key需要区分可以省却2行代码
    settings.beginGroup("test1");
    ui->wEdit->setText(settings.value("val1").toString()); // settings.value 返回值是一个QVariant任意类型
    settings.endGroup();

}

Widget::~Widget()
{
    QSettings settings("configuration.ini", QSettings::IniFormat);
    // 三个属性 key, val(), 父对象 - QVariant 是可以转换成任意类型
    settings.beginGroup("test1");
    settings.setValue("val1", ui->rEdit->text());
    settings.endGroup();

    delete ui;
}
widget.cpp
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 小技巧 - 把读取配置文件放到构造里面,写配置文件放到析构里面这样就可以启动程序还原上次的配置关闭程序就可以保存当前配置

    /*
        会在程序的运行的根目录创建一个名为configuration后缀为ini 的文件 configuration.ini
        configuration.ini
        [section]
        key = val
    */
    // 配置文件 名、格式
    QSettings settings("configuration.ini", QSettings::IniFormat);

    // 如没有重复key需要区分可以省却2行代码
    settings.beginGroup("test1");
    ui->wEdit->setText(settings.value("val1").toString()); // settings.value 返回值是一个QVariant任意类型
    settings.endGroup();

}

Widget::~Widget()
{
    QSettings settings("configuration.ini", QSettings::IniFormat);
    // 三个属性 key, val(), 父对象 - QVariant 是可以转换成任意类型
    settings.beginGroup("test1");
    settings.setValue("val1", ui->rEdit->text());
    settings.endGroup();

    delete ui;
}
widget.h
// 默认新创建 - 只添加了一个头文件
#include <QSettings>
ui窗口

image-20230822171640752

在上面输入数字后关闭程序再次运行就会在下面输入框中显示

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值