我有一个Qt应用程序,需要能够从多个设置文件加载,以便以不同的方式运行。例如,假设我的应用程序可以支持多种变体,VAR1,VAR2,VAR3,...我的一个菜单条目允许我加载设置。目前,我使用QSettings对象执行此操作,它工作正常。但现在我想实现一个不同的变体。我想从预先配置的设置文件中加载,而不是手动设置20个或更多设置。
据我所知,QSettings不允许我更改源代码。我查看了静态方法QSettings :: setPath,但只能在实例化QSettings对象之前完成一次。
我的希望是创造方法: 1 - 加载出厂默认值 2 - 使用用户指定的名称保存用户设置文件 3 - 按名称调用用户设置文件。
如果可能的话,我宁愿不必重写QSettings来满足我的需求。
答案 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);