【问题标题】:QSettings(Qt 5.4): setValue doesn't work properlyQSettings(Qt 5.4):setValue 不能正常工作
【发布时间】:2015-12-25 16:26:40
【问题描述】:

在我的 .cpp 中,我使用的是 QSettings。
这在 Qt 4.8 之前有效:

#include <QSettings>


----------


QSettings settings;
settings.setValue("time_axis_direction", 1);
int test_var = settings.value("time_axis_direction").toInt();


----------

test_var程序返回0,是什么原因?
我将 Qt 与 VS 插件一起使用。

【问题讨论】:

  • 尝试在写入和读取值之间调用QSettings::sync()
  • 很遗憾,它不起作用。

标签: c++ qt qsettings


【解决方案1】:

根据docs,你必须设置组织名称和应用程序名称:

QCoreApplication::setOrganizationName("My Organization");
QCoreApplication::setApplicationName("My Application");
QSettings settings;

或者就在构造函数中:

QSettings settings("My Organization", "My Application");

这将创建 HKCU\SOFTWARE\My Organization\My Application 注册表项来存储您的设置(在 Windows 上)。

如果之前没有调用 QCoreApplication::setOrganizationName() 和 QCoreApplication::setApplicationName(),QSettings 对象将无法读取或写入任何设置,并且 status() 将返回 AccessError。

【讨论】:

    猜你喜欢
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 2017-10-05
    相关资源
    最近更新 更多