我如何使用QSettings加载不同的设置

时间:2012-10-17 15:48:25

标签: qt qsettings

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

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

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

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

2 个答案:

答案 0 :(得分: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()并获取值。

答案 1 :(得分:0)

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

 QSettings settings("/home/petra/misc/myapp.ini",
                    QSettings::IniFormat);