2015-09-28 110 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。