QSettings操作ini配置文件
QSettings有两种方法,1是操作注册表,2是操作ini文件。笔者喜欢后一种,主要介绍后一种。
何时使用
一般分两种情况:
- 保存软件使用过程中修改的一些文本、数字信息,下次打开软件时可以直接显示上次关闭软件时修改的值,而不是默认的值。需要 读写 ini文件。
- 直接存储一些配置信息,如调试、校准参数等,不需要界面显示,数据不合适时,可直接修改ini文件内容。只 读 ini文件即可。
如何使用
我们这是介绍最简单的一种方法,可满足一般需求。如不能满足请自行查看帮助文档。
保存数据到ini文件
先上代码:
#include <QSettings>
void SettingTest::writesettings()
{
//保存界面值
QSettings settings("setInfo.ini",QSettings::IniFormat);
settings.beginGroup("Calibration");
settings.setValue("powerCalibration",1);
settings.setValue("powerInitValue",0);
settings.setValue("temperatureCalibration",1);
settings.endGroup();
}
若项目的构建目录下无setInfo.ini
文件,则将在此目录下生成此文件。
打开生成的文件看一下:
[Calibration]
powerCalibration=1
powerInitValue=0
temperatureCalibration=1
[Calibration]
为组名,下面为保存的数据。若要创建多组 可重复上述代码。
此函数一般在析构函数中调用即可
从ini文件读数据
oid SettingTest::readsettings()
{
QSettings settings("setInfo.ini",QSettings::IniFormat);
settings.beginGroup("Calibration");
powerCalibration=settings.value("powerCalibration",1).toFloat();
powerInitValue=settings.value("powerInitValue",0).toFloat();
temperatureCalibration=settings.value("temperatureCalibration",1).toFloat();
settings.endGroup();
}
不用多说,看代码即可。
settings.value("powerCalibration",1)
第二个参数,为若powerCalibration不存在或无具体值,则赋值1。
此函数常用在构造函数中
若为第二种使用情况,则可以直接自行创建ini文件放到项目构造目录(编写过程)或软件文件夹根目录(软件部署打包后),直接读相关数据即可。