1

您好,我有一个QSetting::NativeFormat由应用程序生成的 Mac OS X plist 文件(),现在我想在不支持它的基于 Linux 的操作系统上使用这个 plist 文件。所以我决定采用 INI 格式的文件。这很容易阅读QSetting::IniFormat。但我很困惑如何将 a 转换QSetting::NativeFormatQSetting::IniFormat. 请帮助我。

4

3 回答 3

1

转换必须在 OS X 上完成,因为 plist 本机格式只支持那里。您需要编写一些代码来以一种格式读取设置并将它们转储为另一种格式。您可以使用QSettings::childGroupschildKeys来枚举设置。您可以让您的应用程序执行此操作,您可以将其放入您将手动调用一次的帮助应用程序中。

于 2016-08-29T19:41:25.993 回答
0

只需复制所有键和值。

void setcpy(QSettings *dst, const QSettings &src) {
    for (const auto &key : src.allKeys())
        dst->setValue(key, src.value(key));
}
于 2016-08-29T08:47:35.623 回答
0

这对我来说很好。

    QSettings Source("/path/filename.plist",QSettings::NativeFormat);
    QSettings Destination("/path/filename.ini",QSettings::IniFormat);
    QStringList  allkeyList = Source.allKeys();
    for(int i=0;r<allkeyList.size();++i)
    {
        Destination.setValue(allkeyList[i], Source.value(allkeyList[i]));
    }
于 2016-08-30T02:56:29.180 回答