为什么是possible in Qt 5.2和previously并以以下格式存储数据:
key=@Variant(\0\0\0\b\0\0\0)
但是Qt 5.11现在有问题吗?以下代码
QVariantMap projectsMap;
for (auto project : projects)
projectsMap.insert(key, value);
settings->setValue("Group/projects", projectsMap);
正确执行,但是不存储任何内容到ini文件。
qRegisterMetaTypeStreamOperators<QVariantMap>("QVariantMap");
也没有帮助。如何存储它,这是什么问题?
答案 0 :(得分:2)
不要存储QSettings
:这并不是要那样使用。每次更改设置时,都应使用QSettings
的新实例。您的析构函数应如下所示:
MyClass::~MyClass() {
QSettings s;
s.setValue(kFoo, this->m_bar);
…
}
QSettings
是设置系统的临时句柄,其实例化很便宜。之所以泄漏它,是因为QPointer
不会破坏任何东西:它不是拥有的指针。