Solved QSettings speichert keine Werte?
-
Servus.
Ich hab heute mal versucht, mit QSettings meine Einstellungen zu speichern und zu laden.
Das sieht aktuell so aus:void TGS_Filemanager::File_LoadConfig(){ QSettings mysetup("BlackDevilCreations", "TileGameStudio"); EditorTheme = mysetup.value("Theme").toString(); EditorLang = mysetup.value("Lang").toString(); EditorColor = mysetup.value("EditorCol").toString(); EditorUseCol = mysetup.value("UseCol").toBool(); mysetup.sync(); qDebug() << mysetup.status(); } void TGS_Filemanager::File_SaveConfig(){ QSettings mysetup(QDir::currentPath() + "/config.ini", QSettings::IniFormat); mysetup.beginGroup("Settings"); mysetup.setValue("Theme", EditorTheme); mysetup.setValue("Lang", EditorLang); mysetup.setValue("EditorCol", EditorColor); mysetup.setValue("UseCol", EditorUseCol); mysetup.endGroup(); mysetup.sync(); qDebug() << mysetup.status(); }
Die Variablen EditorXXXX sind statisch in einer globals.h file.. nicht schön, aber zugänglich fürs erste.
Das problem ist nun, dass er die ini file zwar schreibt, auch mit dem Gruppenname und den Keys.. aber ohne Values (von dem Bool mal abgesehen).
So sieht die ini nach dem speichern aus:[Settings] Theme= Lang= EditorCol= UseCol=false
Die Werte sind in KEINEM Fall leer, da sie standard Werte besitzen.
Dennochs chreibt QSettings die Werte nicht rein.Woran liegt das?
Ps.: QCoreApplication::setOrganizationName/setApplicationName sind im main.cpp gesetzt.
And settings.status() always returns "No Error" -
Hi @BDC_Patrick
sieht so aus als würdest du in 2 Komplett unterschiedliche Dateien lesen und schreiben.Bei
File_SaveConfig
gibst du eine spezifische .ini Datei for, während du beiFile_LoadConfig
auf die native implementation von Settings zurück fällst.Load hat außerdem keine Settings-Gruppe wie sie SaveConfig hat!
Ich würde das einmal auf einen Nenner bringen, vielleicht hilft das ja schon :D
-
Hallo,
was liefert eine Debugausgabe vor dem Speichern, z.B.
qDebug() << EditorTheme;
oder werden die Werte gespeichert, wenn sie testweise vor setValue explizit gesetzt werden, z.B.
EditorTheme = "test"; mysetup.setValue("Theme", EditorTheme);
?
-
Hi @BDC_Patrick
sieht so aus als würdest du in 2 Komplett unterschiedliche Dateien lesen und schreiben.Bei
File_SaveConfig
gibst du eine spezifische .ini Datei for, während du beiFile_LoadConfig
auf die native implementation von Settings zurück fällst.Load hat außerdem keine Settings-Gruppe wie sie SaveConfig hat!
Ich würde das einmal auf einen Nenner bringen, vielleicht hilft das ja schon :D
-
@J-Hilk Mercy J-Hilk 😊