как добавить группу в существующий файл QSettings

Я уже создал QSettings файл в своем коде, но новая функция должна добавить новую группу в мой QSettings файл, поэтому я все еще использую код:

settings = QSettings()
settings.beginGroup("showItem")
settings.setValue("show", True)
settings.endGroup()

но это упоминание связано с моим старым QSettings файлом! Итак, кто-нибудь знает, как добавить новую группу в QSettings файл?


person seme    schedule 07.04.2015    source источник
comment
Вы забыли установить файл?   -  person svlasov    schedule 07.04.2015
comment
Вы знаете, что в зависимости от используемой вами ОС файл QSetting записывается в конце выполнения программы?   -  person Thomas Ayoub    schedule 07.04.2015
comment
Что такое True? Это опечатка?   -  person Dmitry Sazonov    schedule 08.04.2015


Ответы (2)


Я использую setValue в функции, в которой закрываю приложение, а затем восстанавливаю значение при его следующем запуске. Например,

void MyApp::closeEvent(QCloseEvent* e) 
{
    (void)(e);  // UNUSED PARAMETER

    QSettings settings("MpApp", abc);
    settings.setValue("show", x); // Where x is a bool datatype 
}

и используйте этот код при инициализации, чтобы восстановить значение:

QSettings settings("MyApp", abc);
bool x = settings.value("show").toBool();

Надеюсь, это поможет!

person Finisher    schedule 07.04.2015
comment
В Qt есть макрос Q_UNUSED. И вы предложили обходной путь, но не ответ. - person Dmitry Sazonov; 08.04.2015

Если у вас не запущен цикл обработки событий, вы можете вызвать QSettings::sync напрямую, чтобы принудительно применить изменения.

person Dmitry Sazonov    schedule 07.04.2015