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

use*_*567 9 c++ qt qsettings

有两种可能的方法:

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

哪种方法更好?

Kév*_*lla 9

这取决于您使用设置文件的方式.您是否希望允许应用程序的用户动态更改文件中的设置(例如.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();

    // ...
}
Run Code Online (Sandbox Code Playgroud)

然后,由于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);
}
Run Code Online (Sandbox Code Playgroud)