是否可以序列化 QSettings 然后恢复它们?

Is it possible to Serialize QSettings and then recover them?

我想通过应用程序的两个实例传递使用 QSetting 保存的设置,例如通过套接字。

我在官方文档中没有看到任何功能。我唯一读到的就是这个 post

Save Configuration Settings to XML file in QT?

但我不想将设置保存在 XML 文件中,例如 Windows 我想继续使用注册表。

我只想收集所有设置,并通过套接字传递它们。并且接收器可以检查设置并最终用接收到的设置替换它自己的设置。

好吧,我想我可以使用 QSettings::allKeys() 做类似的事情,检查所有值,转换为字符串等等...但是你知道 Qt 中是否已经有一些原生函数实施了吗?

在此先感谢大家

我找到的最佳解决方案:

从 QSettings 创建 QMap

QMap<QString, QVariant> keysValuesPairs;
QStringList keys = settings.allKeys();
QStringListIterator it(keys);
while ( it.hasNext() )
{
    QString currentKey = it.next();
    keysValuesPairs.insert(currentKey, settings.value(currentKey));
}

然后用函数写在QJson中(看官方文档http://doc.qt.io/qt-5/qjsonobject.html

QJsonObject::fromVariantMap

然后在另一边用

恢复它

QJsonObject::toVariantMap()

并重写设置

for ( int i = 0; i < keys.size(); i++ )
{
    settings.setValue( keys.at(i), keysValuesPairsMap.value(keys.at(i)) );
}