QSettings读写结构体
时间: 2024-05-02 16:13:37 浏览: 118
QT使用结构体生成读写配置文件数据代码
QSettings是Qt中用于读写配置文件的类,它可以方便地读取和写入各种类型的数据,包括结构体。下面是一个演示如何使用QSettings读写结构体的例子:
```cpp
#include <QCoreApplication>
#include <QSettings>
#include <QDebug>
struct myStruct{
double errorUpper;
double warnUpper;
double warnLower;
double errorLower;
};
Q_DECLARE_METATYPE(myStruct)
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 注册myStruct结构体
qRegisterMetaType<myStruct>("myStruct");
// 写入结构体数据
myStruct data;
data.errorUpper = 1.0;
data.warnUpper = 2.0;
data.warnLower = 3.0;
data.errorLower = 4.0;
QSettings settings("config.ini", QSettings::IniFormat);
settings.setValue("myStructData", QVariant::fromValue(data));
// 读取结构体数据
myStruct readData = settings.value("myStructData").value<myStruct>();
qDebug() << "errorUpper: " << readData.errorUpper;
qDebug() << "warnUpper: " << readData.warnUpper;
qDebug() << "warnLower: " << readData.warnLower;
qDebug() << "errorLower: " << readData.errorLower;
return a.exec();
}
```
这个例子中,我们首先使用Q_DECLARE_METATYPE宏告诉Qt我们自定义的结构体类型。然后在main函数中使用qRegisterMetaType注册结构体类型。接下来,我们创建一个myStruct类型的变量,并给它赋值。然后使用QSettings类将结构体数据写入配置文件。最后,我们从配置文件中读取结构体数据,并打印出来。
阅读全文