【问题标题】:How might I use QSettings to load different setups我如何使用 QSettings 加载不同的设置
【发布时间】:2012-10-07 22:34:54
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: qt qsettings


    【解决方案1】:

    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() 并获取值。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 问题是一旦加载设置,就没有简单的方法来加载不同的设置文件。
      • 为什么不呢?就像 Dave Mateer 的回答一样。
      猜你喜欢
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-11
      相关资源
      最近更新 更多