是否可以序列化 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)) );
}
我想通过应用程序的两个实例传递使用 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)) );
}