一.QSetting介绍
QSettings类提供了一种持久的、与平台无关的应用程序设置存储功能。
QSettings能读写配置文件,当配置文件不存在时,可生成配置文件。
二.基本用法
QSettings 提供了简单易用的 API,下面介绍一些常用的操作:
1.写入配置信息
使用 setValue() 函数可以将键值对存储到配置文件中:
settings.setValue("key", "value");
2.读取配置信息
使用 value() 函数可以读取配置文件中的键对应的值:
QString value = settings.value("key").toString();
3.删除配置信息
使用 remove() 函数可以删除配置文件中的指定键:
settings.remove("key");
三.代码示例
1.代码
#include "widget.h"
#include "ui_widget.h"
#include <QtCore/QtCore>
#include <QFile>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
initIni();
setValuetoIni("NAME1", 7);
initIni();
}
Widget::~Widget()
{
delete ui;
}
void Widget::setValuetoIni(QString key, double value)
{
QString groupNmae = "setingA";
QSettings settings("Config.ini", QSettings::IniFormat);
settings.beginGroup(groupNmae);
settings.setValue(key, value);
settings.endGroup();
}
void Widget::initIni()
{
//文件路径+文件名
QString fileName = "Config.ini";
//创建配置目标,输入文件路径,文件格式
QSettings settings(fileName, QSettings::IniFormat);
//设置文件编码,配置文件中使用中文时,这是必须的,否则乱码
settings.setIniCodec(QTextCodec::codecForName("UTF-8"));
QString groupNmae = "setingA";
QStringList groups = settings.childGroups();
bool found = false;
for(const QString &group:groups){ //判断setingA节点是否存在
if(groups.contains(groupNmae)){
found = true;
break;
}
}
if(!found) //如果之前没有setingA字段就设置添加
{
settings.beginGroup(groupNmae);
settings.setValue("NAME1", 1);
settings.setValue("NAME2", 2);
settings.setValue("NAME3", 0.1);
settings.setValue("NAME4", 1.7);
settings.endGroup();
}
settings.beginGroup(groupNmae);
int value1 = settings.value("NAME1",0).toInt(); //如果YAxisRmin不存在,返回默认值10
int value2 = settings.value("NAME2",0).toInt();
double value3 = settings.value("NAME3",0.1).toDouble();
double value4 = settings.value("NAME4",0.1).toDouble();
settings.endGroup();
qDebug()<<value1<<value2<<value3<<value4;
}
2.打印结果
3.文件内容