1

我有一个 Qt 应用程序,它需要能够从多个设置文件中加载才能以不同的方式运行。例如,假设我的应用程序可以支持多种变体,VAR1、VAR2、VAR3……我的菜单条目之一允许我加载设置。目前,我使用 QSettings 对象执行此操作,它工作正常。但现在我想实现一个不同的变体。我想从预配置的设置文件中加载,而不是手动设置 20 个或更多设置。

据我所知,QSettings 不允许我更改来源。我查看了静态方法 QSettings::setPath 但这只能在实例化 QSettings 对象之前完成一次。

我希望创建以下方法: 1 - 加载出厂默认设置 2 - 使用用户指定的名称保存用户设置文件 3 - 按名称调用用户设置文件。

如果可能的话,我宁愿不必重写 QSettings 来满足我的需求。

4

2 回答 2

5

其中一个QSettings构造函数采用文件名:

QSettings::QSettings (const QString& fileName,
                      Format format, 
                      QObject *parent = 0);

只需使用它来制作QSettings您需要的尽可能多的实例:

QSettings s1("path1.ini", QSettings::IniFormat);
QSettings s2("path2.ini", QSettings::IniFormat);

如果您需要在它们之间进行复制,您可以查看QSettings::allKeys()并获取值。

于 2012-10-17T16:17:57.093 回答
0

您是否尝试过像 INI 文件一样访问 QSettings ?它允许您设置 INI 文件的位置

 QSettings settings("/home/petra/misc/myapp.ini",
                    QSettings::IniFormat);
于 2012-10-17T16:15:57.587 回答