QSettings功能介绍及应用

发布时间:2024年01月16日

一.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.文件内容

文章来源:https://blog.csdn.net/xieliru/article/details/135628937
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。