QSettings (Qt 5.4): setValue не работает должным образом

В моем .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.


person Saratery    schedule 28.09.2015    source источник
comment
Попробуйте вызвать QSettings::sync() между записью и чтением значения.   -  person vahancho    schedule 28.09.2015
comment
К сожалению, это не работает.   -  person Saratery    schedule 28.09.2015


Ответы (1)


Согласно документам, вы должны указать название организации и имя приложения:

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.

person kefir500    schedule 28.09.2015