使用QSetting修改配置文件后保存
参考链接:
https://stackoverflow.com/questions/16203853/qsettings-reading-ini-file/16224318#16224318
https://doc.qt.io/qt-5/qsettings.html
1:QSetting生成一个配置文件
void write_config()
{
QSettings setting("config.ini", QSettings::IniFormat);
setting.beginGroup("group1");
setting.setValue("name", "zhangsan");
setting.setValue("age", 22);
setting.endGroup();
setting.beginGroup("group2");
setting.setValue("book", "The Old Man and the Sea");
setting.setValue("year", 1952);
setting.endGroup();
}
2:QSetting读取配置文件
void read_config()
{
QSettings setting("config.ini", QSettings::IniFormat);
std::string name = setting.value("group1/name").toString().toStdString();
int year = setting.value("group2/year").toInt();
cout << __FUNCTION__ << ", name:" << name << " year:" << year << endl;
}
3:QSetting修改配置文件
调用setting.sync();后才能将修改的部分更新到磁盘文件中
void modify_config()
{
QSettings setting("config.ini", QSettings::IniFormat);
setting.setValue("/group1/name", "lisi");
setting.sync();//写入配置文件
}
4:显示配置文件内容
5:完整代码
#include <iostream>
#include <qsettings.h>
using namespace std;
void write_config()
{
QSettings setting("config.ini", QSettings::IniFormat);
setting.beginGroup("group1");
setting.setValue("name", "zhangsan");
setting.setValue("age", 22);
setting.endGroup();
setting.beginGroup("group2");
setting.setValue("book", "The Old Man and the Sea");
setting.setValue("year", 1952);
setting.endGroup();
}
void read_config()
{
QSettings setting("config.ini", QSettings::IniFormat);
std::string name = setting.value("group1/name").toString().toStdString();
int year = setting.value("group2/year").toInt();
cout << __FUNCTION__ << ", name:" << name << " year:" << year << endl;
}
void modify_config()
{
QSettings setting("config.ini", QSettings::IniFormat);
setting.setValue("/group1/name", "lisi");
setting.sync();//写入配置文件
}
int main(int argc, char *argv[])
{
write_config();
read_config();
modify_config();
read_config();
return 0;
}