QSettings(Qt 5.4):setValue无法正常工作

Sar*_*ery 5 c++ qt qsettings

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

#include <QSettings>


----------


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


----------
Run Code Online (Sandbox Code Playgroud)

test_var程序中返回0,原因是什么?
我使用Qt和VS Add-In.

kef*_*500 8

根据文档,您必须设置组织名称和应用程序名称:

QCoreApplication::setOrganizationName("My Organization");
QCoreApplication::setApplicationName("My Application");
QSettings settings;
Run Code Online (Sandbox Code Playgroud)

或者在构造函数中:

QSettings settings("My Organization", "My Application");
Run Code Online (Sandbox Code Playgroud)

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

如果先前未调用QCoreApplication :: setOrganizationName()和QCoreApplication :: setApplicationName(),则QSettings对象将无法读取或写入任何设置,status()将返回AccessError.