Qt5:ini配置文件的读写操作

QSettings类官方文档

用户通常希望应用程序在会话中记住其设置(窗口大小和位置,选项等)。此信息通常存储在Windows上的系统注册表中,以及macOS和iOS 上的属性列表文件中。在Unix系统上,在没有标准的情况下,许多应用程序(包括KDE应用程序)使用INI文本文件。在项目中,有时需要在程序之外设定一些初始值,一般这些初始值会写入到配置文件中。

ini配置文件格式:ini文件由组、键、值组成。

Qt是通过QSettings类来操作配置文件的。 QSettings的API基于QVariant,允许您以最少的工作量保存大多数基于值的类型,例如QStringQRectQImage

指定QSettings使用的存储格式:

常量描述
QSettings::NativeFormat0使用最适合平台的存储格式存储设置。在Windows上,这意味着系统注册表; 在macOS和iOS上,这意味着CFPreferences API; 在Unix上,这意味着INI格式的文本配置文件。
QSettings::Registry32Format2仅限Windows:从64位Windows上运行的64位应用程序显式访问32位系统注册表。在32位Windows或64位Windows上的32位应用程序中,这与指定NativeFormat相同。此枚举值已添加到Qt 5.7中。
QSettings::Registry64Format3仅限Windows:从64位Windows上运行的32位应用程序显式访问64位系统注册表。在32位Windows上或64位Windows上的64位应用程序中,这与指定NativeFormat相同。此枚举值已添加到Qt 5.7中。
QSettings::IniFormat1将设置存储在INI文件中。请注意,从INI文件读取设置时不保留类型信息; 所有值都将作为QString返回。
QSettings::InvalidFormat16registerFormat()返回的特殊值。

配置文件写操作 

void MainWindow::writeConfig()
{
    //创建ini配置文件
    iniFile = new QSettings("sysConfig.ini", QSettings::IniFormat);
    //组开始
    iniFile->beginGroup(tr("Tom"));
    //设置键值对
    iniFile->setValue(tr("age"), tr("23"));
    iniFile->setValue(tr("gender"), tr("male"));
    iniFile->setValue(tr("id"), tr("00001"));
    //获取当前组
    QString group=iniFile->group();
    qDebug().noquote()<<"group:"<<group;
    //组结束
    iniFile->endGroup();

    iniFile->beginGroup(tr("Helen"));
    iniFile->setValue(tr("age"), tr("20"));
    iniFile->setValue(tr("gender"), tr("female"));
    iniFile->setValue(tr("id"), tr("00002"));
    iniFile->endGroup();
}

配置文件读操作 

void MainWindow::readConfig()
{
    //获取配置文件名
    QString fileName=iniFile->fileName();
    qDebug().noquote()<<"fileName:"<<fileName;

    //判断键是否存在
    bool key=iniFile->contains("Helen/age");
    qDebug().noquote()<<"Helen/age is "<<key;

    //移除键
    iniFile->remove("Helen/age");

    //读取键值对
    int age = iniFile->value("Tom/age").toInt();
    QString gender = iniFile->value("Tom/gender").toString();
    QString id = iniFile->value("Tom/id").toString();
    qDebug()<<age<<gender<<id;
}

 完整代码:

https://github.com/MarsXiaolei/QtCode/tree/master/QSettings

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值