Qt使用QSetting对ini配置文件进行读取和写入

Qt使用QSetting对ini配置文件进行读取和写入

INI文件是Initialization File的缩写,即初始化文件,主要用来保存程序经常用到的一些配置参数。在Qt中可以使用QSetting类来实现ini文件的读取和写入。

一、ini文件格式

ini文件主要有节(section)、键(key)、键值(value)部分组成。

节 (section) 用方括号括起来,单独占一行,例如:
[section]
键(key)又名属性(property),单独占一行用等号连接键名和键值,例如:
name=value
一个很简单的ini文件例子:

[Basic]
age=18
name=LiLei
school=JJUV

[Capability]
jump=3m
run=5km

二、Qt中操作ini文件的方法

向ini文件写入:
第一种方法:

// 根据ini文件路径新建QSettings类
QSettings  m_IniFile = new QSettings("ini文件的路径", QSettings::IniFormat);

//通过setValue函数将键值对放在相对于的节下面
m_IniFile->setValue( “节名” + “/” + “键名”, “键对应的值”);

第二种方法:

// 根据ini文件路径新建QSettings类
QSettings  m_IniFile = new QSettings("ini文件的路径", QSettings::IniFormat);

m_IniFile ->beginGroup(“节名”); // 设置当前节名,代表以下的操作都是在这个节中

m_IniFile->setValue( “键名”, “键对应的值”); // 因为上面设置了节了,这里不在需要把节名写上去

m_IniFile.endGroup(); // 结束当前节的操作

从ini文件读取:

//通过Value函数将节下相对应的键值读取出来
QString value = m_IniFile->Value( "节名" + "/" + "键名").toString;

方法同写入的方法

三、Qt使用QSetting对ini文件进行读写的示例

新建名为ini_use的工程,基类为QWidget,类名称为ini_use
在这里插入图片描述
工程文件列表如下
在这里插入图片描述
ui界面如下:
在这里插入图片描述

具体代码如下:
ini_use.h

#ifndef INI_USE_H
#define INI_USE_H

#include <QWidget>
#include <QSettings>
#include <QtDebug>

namespace Ui {
class ini_use;
}

class ini_use : public QWidget
{
Q_OBJECT

public:
explicit ini_use(QWidget *parent = nullptr);
~ini_use();

private slots:
void on_setBtn_clicked();

<span class="token keyword">void</span> <span class="token function">on_getBtn_clicked</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

private:
Ui::ini_use *ui;

QSettings <span class="token operator">*</span>m_IniFile<span class="token punctuation">;</span>

};

#endif // INI_USE_H

#include "ini_use.h"
#include "ui_ini_use.h"

ini_use::ini_use(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::ini_use)
{
    ui->setupUi(this);

    //获取应用程序可执行文件所在的目录
    qDebug()<<"current applicationDirPath: "<<QCoreApplication::applicationDirPath();
    // 实例化QSettigns,在应用程序可执行文件所在的目录中打开或者新建info.ini文件
    m_IniFile = new QSettings(QCoreApplication::applicationDirPath()+"/info.ini", QSettings::IniFormat);
}

ini_use::~ini_use()
{
    delete ui;
}

void ini_use::on_setBtn_clicked()
{
    m_IniFile->setValue( ui->sectionEdit->text() + "/" + ui->keyEdit->text(), ui->valueEdit->text());

}

void ini_use::on_getBtn_clicked()
{
    ui->valueEdit->setText(m_IniFile->value(ui->sectionEdit->text() + "/" + ui->keyEdit->text()).toString());
}


main.cpp

#include "ini_use.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    ini_use w;
    w.show();

    return a.exec();
}

程序运行如下
在这里插入图片描述
info.ini文件被创建在应用程序可执行文件所在的目录中。
可以通过界面添加节、键和键值,按下 setData 按钮会将内容写入到 info.ini 文件中。
读取时,在section和key中输入相应内容,点击getData按钮则输出相应的值。

另外,可以直接打开 info.ini 文件,按照格式改动文件,此时,需要重新启动程序,才能将改动的内容反应出来。比如,程序运行中手动在文件中添加了

[section3]
weight=60kg

在这里插入图片描述
此时通过界面是找不到内容的。当再次运行时则能够找到。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值