Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

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"


  • Moderators

    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 bei File_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);
    

    ?


  • Moderators

    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 bei File_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 😊


Log in to reply