配置文件

程序开发中常常需要有配置文件来记录相关的设置项,便于用户下次启动软件时,能恢复设置。常见的配置有如下几种形式:

  • ini:用于简单的 section: key-value 形式,在Windows上有专用的API接口
  • xml:结构化的存储配置文件
  • json:使用相对广泛
  • 注册表:Window专有的配置方式

一、ini 方式

ini文件为一个简单的文本文件,其存储文件的形式为 [section]: key-value,一个section 下可以有多对key-value来进行存储:

[groupInfo]
path=D:/tmp/Dir
count=666888
userName=admin
password=6789
size\width=100
size\height=888

对应的实现代码,使用 QSettings 来进行存储和读取,如果没有该文件,在写入时会自动创建

// 写入配置
QString iniPath = "D:/Tmp/config.ini";
QSettings set1(iniPath, QSettings::IniFormat);

// 设置 Section的内容
set1.beginGroup("groupInfo");

set1.setValue("path", "D:/tmp/Dir");
set1.setValue("count", 666888);
set1.setValue("userName", "admin");
set1.setValue("password", "6789");

set1.setValue("size/width", 100);
set1.setValue("size/height", 888);

set1.endGroup();

// 读取配置
QString iniPath = "D:/Tmp/config.ini";
QSettings set1(iniPath, QSettings::IniFormat);

set1.beginGroup("groupInfo");
QString userName = set1.value("userName").toString();
int password = set1.value("password").toInt();
QString path = set1.value("path").toString();
QStringList keys = set1.allKeys();
set1.endGroup();

四、注册表

使用QSettings 来进行写入注册表,如下代码

QSettings setting("ADemo", "App01");

setting.setValue("Test01", 101);
setting.setValue("Test02", 201);

setting.beginGroup("newGp");
setting.setValue("mainWindow", "100x200");
setting.setValue("mainSize", 200);
setting.setValue("mainType", "Test for index");
setting.endGroup();

setting.setValue("Sec/size", 200);
setting.setValue("Sec/size2", 300);
setting.setValue("Sec/size3", 400);

以上代码写入位置如下,都在 App01 下:

posted @ 2025-06-30 17:10  Jeffxue  阅读(56)  评论(0)    收藏  举报