gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 03:30:27 24 4
gpt4 key购买 nike

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

我在官方文档中看不到任何功能。例如,我唯一读到的就是这篇文章

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)) );
}

关于c++ - 是否可以序列化 QSettings 然后恢复它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44947405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com