Приветствую.
Есть код: сериализация настроек приложения, сделанных как QProperty, в ini файл(потому что мне сказали, что реестр - плохой стиль).
Settings = new QSettings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), QApplication::applicationName());
QString path = Settings->fileName();
и чуть позже:
const QMetaObject *metaobject = metaObject();
int count = metaobject->propertyCount();
for (int i = 0; i
QString Key = QString(name);
Settings->setValue(Key, value);
}
В переменной path путь к ini-файлу:
path = C:/Users/ILIA/AppData/Roaming/HighwaySoftware/Vesta 2016.ini
От русских букв в путях я ушел давно. Файл не создаётся. Думал, нет прав на запись, запустил из-под Visual Studio 2013, запущенной от администратора - нет результата. Чтобы вы не думали, что файл я не нашёл, я его искал через Everything c запросом:
*vesta*.ini
где vesta - имя приложения, его нет. В чём дело? В реестр вся информация пишется(правда, не всегда, я это не поборол).
Ответ
Данные сохраняются при вызове метода sync, а также при вызове деструктора и по интервалу в event loop. Вы создаёте QSettings в куче и, вероятно, сразу завершаете приложение, не удаляя объект.
Дебаггер останавливает все потоки, поэтому если вы после записи настроек замораживаете приложение, то настройки не успевают сохраниться.
Комментариев нет:
Отправить комментарий