QSettings能读写配置文件,当配置文件不存在时,可生成配置文件。
1.避免中文乱码,需要设置配置文件编码
2.写入配置项后,必须同步才能写入文件
#include <QtCore/QtCore>
#include <QFile>
#include <QDebug>
#include <QTextCodec>
void ConfigSetting(void)
{
//文件路径+文件名
QString fileName = QCoreApplication::applicationDirPath() + "/Config.ini";
//创建配置目标,输入文件路径,文件格式
QSettings *setting = new QSettings(fileName , QSettings::IniFormat);
//设置文件编码,配置文件中使用中文时,这是必须的,否则乱码
setting->setIniCodec(QTextCodec::codecForName("UTF-8"));
// 判断文件是否存在
if(QFile::exists(fileName))
{// 文件存在,读出配置项
// 这里的setting->value的第二参数,是配置项缺省值,即当读取的配置项不存在时,读取该值
// User是配置组,name和age是配置项
QString name = setting->value("User/name", "张三").toString();
int age = setting->value("User/age", 30).toInt();
}
else {// 文件不存在,写入配置项,生成配置文件
setting->setValue("User/name", "张三");
setting->setValue("User/age", 30);
// setValue只是把配置项写入了缓冲区,若要写入文件,还需执行同步
// 不同步,无法写入文件,无法生成文件
setting->sync();
}
}