本文介绍Qt读写配置(ini)文件。
1.配置文件(ini)简介
配置文件(ini)也叫ini文件(Initialization File),即初始化文件。它由节名,键名,键值构成。其文件构成如下:
[Student]
name=Bob
sex=male
age=16
其中,
1)[Student]为节名
2)name为键名,Bob为键值,它俩由“=”连接起来组成键值对。
2.使用QSetting类读写配置文件
Qt采用QSetting类对配置(ini)文件进行操作(建立,读,写)。
1)建立
指定文件名(需给出路径,相对路径或绝对路径)即可,代码如下:
QSettings *settings;
settings = new QSettings("Config.ini", QSettings::IniFormat);
2)读操作
读操作指定节名和键名即可,因value返回的是QVariant类型。需要根据实际使用情况转换为相应的类型,如这里转换成了String类型。代码如下:
settings->value("Student/name").toString();
3)写操作
写操作有2种方法,一种直接指定节名和键名,并给出键值即可。另一种可以先指定节名,然后再根据键名给出键值即可。
a)方法1
直接指定节名和键名,代码如下:
settings->setValue("Student/name", "Bob");
settings->setValue("Student/sex", "male");
b)方法2
先指定节名,然后再根据键名,给出键值,代码如下:
settings->beginGroup("Student");
settings->setValue("name", "Bob");
settings->setValue("sex", "male");
settings->endGroup();
3.参考源代码
这里给出一个以字符串为写入和读出的类,参考代码如下:
1)"Config.h"文件
#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"文件
#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)文件。
总结
**文章总结:Qt读写ini配置文件指南**本文详细介绍了如何在Qt框架中读写ini配置文件(Initialization File)。配置文件(ini)是由节名、键名和键值组成的文本文件,广泛应用于程序的初始化和配置存储。
**一、ini文件简介**
- **定义**:ini文件,即初始化文件,由节名([SectionName])、键名(keyName)和键值(keyValue)构成,使用“=”连接键名和键值。
- **示例**:`[Student]`为节名,`name=Bob`、`sex=male`等为键值对。
**二、使用QSetting类操作ini文件**
**1. 建立ini文件**
- 通过创建`QSettings`实例,并指定文件名及格式(IniFormat)来建立或打开ini文件。例如,`QSettings("Config.ini", QSettings::IniFormat);`
**2. 读操作**
- 读取操作需提供节名和键名,`QSettings`返回`QVariant`类型,需转换为相应类型。例如,`settings->value("Student/name").toString();`获取Student节下的name键的字符串值。
**3. 写操作**
- 写操作有两种主要方法:
- **方法1**:直接通过节名和键名设置键值,如`settings->setValue("Student/name", "Bob");`。
- **方法2**:先通过`beginGroup`指定节名,再设置键值,最后通过`endGroup()`结束节的操作。例如:
```cpp
settings->beginGroup("Student");
settings->setValue("name", "Bob");
settings->setValue("sex", "male");
settings->endGroup();
```
**三、参考源代码**
- 详细展示了如何使用Qt中的类和方法封装ini文件读写功能。
- `Config`类封装了`QSettings`的初始化、设置值(`setValue`)和获取值(`getValue`)的功能。
- 在`Config`类中分别实现了读写ini文件的方法,简化了ini文件的操作流程。
综上所述,本文通过理论和实例相结合的方式,详细讲解了Qt如何用`QSettings`类来操作ini文件,涵盖了创建ini文件、读取数据和写入数据等核心操作,并提供了实用的代码示例。