qsetting写入结构体与读取结构体
时间: 2023-11-08 18:08:55 浏览: 97
对象的写入与读取。
QSettings类是用于读写跨平台应用程序的设置的工具。它使用INI文件格式(或者注册表格式,如果你在Windows平台上)保存应用程序的设置。
下面是一个示例代码,展示如何使用QSettings类将数据写入INI文件并从文件中读取数据:
```cpp
#include <QCoreApplication>
#include <QSettings>
#include <QDebug>
// 定义结构体
struct SettingStruct {
int id;
QString name;
bool isEnable;
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建一个QSettings对象,指定INI文件路径
QSettings settings("myApp.ini", QSettings::IniFormat);
// 写入结构体数据
SettingStruct mySetting;
mySetting.id = 1;
mySetting.name = "mySetting";
mySetting.isEnable = true;
settings.beginGroup("MySettings");
settings.setValue("id", mySetting.id);
settings.setValue("name", mySetting.name);
settings.setValue("isEnable", mySetting.isEnable);
settings.endGroup();
// 读取结构体数据
SettingStruct readSetting;
settings.beginGroup("MySettings");
readSetting.id = settings.value("id").toInt();
readSetting.name = settings.value("name").toString();
readSetting.isEnable = settings.value("isEnable").toBool();
settings.endGroup();
// 打印读取的数据
qDebug() << "id: " << readSetting.id;
qDebug() << "name: " << readSetting.name;
qDebug() << "isEnable: " << readSetting.isEnable;
return a.exec();
}
```
在上面的代码中,我们定义了一个结构体SettingStruct,并将数据写入INI文件。我们可以使用beginGroup和endGroup来指定一个组,用来保存结构体数据。在读取数据时,同样使用beginGroup和endGroup指定读取的组。最后,我们打印出读取到的数据。
需要注意的是,我们使用了QSettings类的IniFormat格式,这意味着数据将被保存在INI文件中。如果你需要在Windows平台上使用注册表格式,可以使用QSettings::NativeFormat格式。
阅读全文