Qt读写配置(ini)文件

本文介绍Qt读写配置(ini)文件。

1.配置文件(ini)简介

配置文件(ini)也叫ini文件(Initialization File),即初始化文件。它由节名,键名,键值构成。其文件构成如下:

cpp 复制代码
[Student]
name=Bob
sex=male
age=16

其中,

1)Student为节名

2)name为键名,Bob为键值,它俩由"="连接起来组成键值对。

2.使用QSetting类读写配置文件

Qt采用QSetting类对配置(ini)文件进行操作(建立,读,写)。

1)建立

指定文件名(需给出路径,相对路径或绝对路径)即可,代码如下:

cpp 复制代码
QSettings *settings;
settings = new QSettings("Config.ini", QSettings::IniFormat);

2)读操作

读操作指定节名和键名即可,因value返回的是QVariant类型。需要根据实际使用情况转换为相应的类型,如这里转换成了String类型。代码如下:

cpp 复制代码
settings->value("Student/name").toString();

3)写操作

写操作有2种方法,一种直接指定节名和键名,并给出键值即可。另一种可以先指定节名,然后再根据键名给出键值即可。

a)方法1

直接指定节名和键名,代码如下:

cpp 复制代码
settings->setValue("Student/name", "Bob");
settings->setValue("Student/sex", "male");

b)方法2

先指定节名,然后再根据键名,给出键值,代码如下:

cpp 复制代码
settings->beginGroup("Student");
settings->setValue("name", "Bob");
settings->setValue("sex", "male");
settings->endGroup();

3.参考源代码

这里给出一个以字符串为写入和读出的类,参考代码如下:

1)"Config.h"文件

cpp 复制代码
#ifndef CONFIG_H
#define CONFIG_H

#include <QObject>
#include <QSettings>


class Config : public QObject
{
    Q_OBJECT
public:
    explicit Config(QObject *parent = nullptr);
    ~Config();

public:
    void setValue(const QString section, const QString key, const QString value);
    QString getValue(const QString section, const QString key);

private:
    QSettings *settings;

signals:

public slots:
};

#endif // CONFIG_H

2)"Config.cpp"文件

cpp 复制代码
#include "config.h"

Config::Config(QObject *parent) : QObject(parent)
{
    settings = new QSettings("Config.ini", QSettings::IniFormat);
}

Config::~Config()
{
    delete settings;
}

void Config::setValue(const QString section, const QString key, const QString value)
{
    settings->beginGroup(section);
    settings->setValue(key, value);
    settings->endGroup();
}

QString Config::getValue(const QString section, const QString key)
{
    QString path = QString("%1/%2").arg(section).arg(key);

    return settings->value(path).toString();
}

总结,本文介绍了Qt读写配置(ini)文件。

相关推荐
ShineWinsu15 分钟前
对于Qt:QTreeWidget常见属性以及QTreeWidgetItem类的解析
开发语言·c++·qt·gui·客户端·多叉树·qtreewidget
ShineWinsu1 天前
对于Qt:QTabWidget常见属性的解析
开发语言·数据库·c++·qt·浏览器·qtabwidget·标签页
慧都产品智能化4 天前
Qt 表格升级攻略:复用已有编辑器,减少重复开发
c++·qt·编辑器·qt6.3
ShineWinsu4 天前
对于Qt:QTableWidget常见属性以及QTableWidgetItem类的解析
开发语言·c++·qt·gui·客户端·表格·qtablewidget
ShineWinsu4 天前
对于Qt:QListWidget常见属性以及QListWidgetItem类的解析
开发语言·c++·qt·客户端·列表·qlistwidget·qlistwidgetitem
ShineWinsu4 天前
对于Qt:QDial常见属性以及信号的解析
开发语言·c++·qt·gui·客户端·旋钮·qdial
宛 禾5 天前
Qt 事件系统完全指南:从事件循环到实战避坑
qt
敲上瘾5 天前
Qt Widgets入门:项目模板解析与Hello World
开发语言·数据库·c++·qt·ui·qt6.3
MOONICK6 天前
QT元数据
开发语言·qt
橙橙笔记6 天前
QT的学习第四部分
linux·qt·学习·音视频