我想通过QSetting保存的设置通过应用程序的两个实例传递,例如通过套接字。
我在官方文档中看不到任何功能。我读过的唯一内容就是这篇文章
Save Configuration Settings to XML file in QT?
但我不想将设置保存在XML文件中,例如在Windows中我想继续使用注册表。
我只想收集所有设置,并通过套接字传递它们。并且接收器可以检查设置并最终用接收的设置替换它自己的设置。
好吧,我想我可以使用QSettings :: allKeys()做一些类似的事情,检查所有值,转换为字符串等等......但是你知道Qt中是否有一些本机函数已经实现了吗? / p>
感谢大家提前
答案 0 :(得分:2)
我找到的最佳解决方案:
从QSettings
创建QMapQMap<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)) );
}