2015-09-28 348 views
4

在我的.cpp我使用QSettings。
这个工作之前,在Qt的4.8:QSettings(Qt 5.4):setValue无法正常工作

#include <QSettings> 


---------- 


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


---------- 

test_var程序返回0,是什么原因?
我使用Qt和VS加载项。

+0

尝试在写入和读取值之间调用'QSettings :: sync()'。 – vahancho

+0

不幸的是,它不起作用。 – Saratery

回答

7

按照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对象将无法读取或写入任何设置和状态()将返回AccessError。