一、获取文件:
#include <QSettings>
QSettings Settings(QCoreApplication::applicationDirPath() + "./Config/test.ini", QSettings::IniFormat);
QCoreApplication::applicationDirPath() + “./Config/test.ini”:
QCoreApplication::applicationDirPath() 是 QCoreApplication 类的一个静态成员函数,用于获取当前应用程序可执行文件所在的目录路径。
“./Config/test.ini” 是相对路径,表示在应用程序可执行文件所在目录下的 Config 文件夹中的 test.ini 文件。将两者拼接起来就得到了配置文件的完整路径。
QSettings::IniFormat:
这是一个枚举值,指定了配置文件的格式为 INI 格式。
二、插入数据:
QString nameStr = "张三";
int ageInt = 22;
QString genderStr = "男";
Settings.beginGroup("section");//节
Settings.setValue("name", nameStr);//name键,nameStr值
Settings.setValue("age", ageInt);
Settings.setValue("gender", genderStr);
Settings.endGroup();
储存到ini文件中格式就是下面这样
[section]
name=张三//在文件中,中文会以16进制显示,不会显示中文。
age=22
gender=男
三、读取数据:
//根据节获取数据
Settings.beginGroup("section");//节
QString nameStr = Settings.value("name","未知").toString();//value(键,默认值);根据键获取值,如果没有这个键,就会返回默认值
int ageInt =Settings.value("age", 18).toInt();
QString genderStr = Settings.value("gender", "男").toString();
Settings.endGroup();
//当有多个节时,获取全部节
QStringList StringList = Settings.childGroups();
//当有多个键时,获取全部键
QStringList StringList = Settings.allKeys();
QStringList StringList = Settings.childKeys();
(allKeys和childKeys的区别在于。
Settings.allKeys() 会返回 QSettings 对象中所有分组下的键,键名会包含分组信息。
Settings.childKeys() 只返回当前分组下的键,不包含其他分组的键。)
四、删除数据:
//根据节section删除节下面的所有数据
Settings.remove("section");
//删除文件中所有的数据
Settings.clear();