c++ - 如何使用 QSettings 在 Qt 应用程序中加载设置

标签 c++ qt qsettings

有两种可能的方式:

  • 将所有设置加载到某个结构中
  • 按需加载值

哪种方法更好?

最佳答案

这取决于您使用设置文件的方式。您是否希望您的应用程序的用户动态更改文件(例如.ini 文件)中的设置?或者必须通过 GUI 设置设置?

如果您使用某些 GUI 来更改设置,我建议您在应用程序开始时从静态类加载主要设置。

void SettingsManager::loadSettings()
{
    // .ini format example
    QSettings settings(FileName, QSettings::IniFormat);

    IntegerSetting = settings.value("SettingName", default).toInt();
    BooleanSetting = settings.value("SettingName", default).toBool();

    // ...
}

然后,由于 QSettings,按需保存更改的值没有问题。优化。

/**
  * key is your setting name
  * variant is your value (could be string, integer, boolean, etc.)
  */
void SettingsManager::writeSetting(const QString &key, const QVariant &variant)
{
    QSettings settings(FileName, QSettings::IniFormat);

    settings.setValue(key, variant);
}

关于c++ - 如何使用 QSettings 在 Qt 应用程序中加载设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14365653/

相关文章:

c++ - 运算符 T() 未在赋值中使用

c++ - Visual Studio 2005 C++ 应用程序想要以管理员身份运行

c++ - 使QT表单不显示在任务栏中

c++ - 以人类可读的形式在 QSettings 中保存自定义 QMap 模板实例化

android - NDK BUILD 没有那个文件或目录

c++ - Qt中如何列出继承自QObject的类的所有成员变量?

c++ - Qt对象删除但信号未断开

c++ - QSettings(Qt 5.4) : setValue doesn't work properly

python - 如何将选定的项目从 QListWidget、QTableWidget 保存到 Qsettings

c++ - 做原子操作(C++)卡住CPU