PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Qt4] Settings laden/speichern



xmarvel
17-02-2007, 23:36
Hi,

mein Programm besitzt jetzt mehrere unterschiedliche Einstellungsmöglichkeiten sei es das irgendein Icon angezeigt wird oder die Hintergrundfarbe eine bestimmte Farbe gesetzt wird etc.

Inmoment speichere ich die Einstellungen noch nicht ab aber das soll sich ändern damit der User seine individuelle Config beibehält.
Nur fehlt mir in diesem Fall die Erfahrung bzw. Wissen wie man das am geschicktesten realisiert.

Deswegen hab ich eine Frage an die Community. :)
( Dazu sei gesagt ich will die Klasse QSettings missbrauchen auf die Hoffnung das Qt sich später irgendwann entscheidet Elektra zu implementieren ;) )

Wie gehe ich an das Problem "professionell" an?
Muss ich zur jeder Einstellung schreiben das sie abgspeichert wird. Und beim Laden jede Einstellung zu einer Funktion einzeln zuordnen damit der Wert korrekt gesetzt wird? (-> das würde ja zur einer ewigen if-then-else Lösung hinauslaufen)

Also nochmals konkret wie man Sachen mittels QSettings abspeichert ist kein Problem aber das Design ist mir noch unklar. (Gibt es ein entsprechenden Design Pattern/Vorgehensweise dafür?)

Gruss,
xmarvel

anda_skoa
18-02-2007, 13:42
Deswegen hab ich eine Frage an die Community. :)
( Dazu sei gesagt ich will die Klasse QSettings missbrauchen auf die Hoffnung das Qt sich später irgendwann entscheidet Elektra zu implementieren ;) )

Ich denke das ist keine Frage des "mißbrauchen", genau zu diesem Zweck gibt es QSettings.



Wie gehe ich an das Problem "professionell" an?
Muss ich zur jeder Einstellung schreiben das sie abgspeichert wird. Und beim Laden jede Einstellung zu einer Funktion einzeln zuordnen damit der Wert korrekt gesetzt wird? (-> das würde ja zur einer ewigen if-then-else Lösung hinauslaufen)


Ein Beispiel dazu gibt es in der Qt Dokumentation:
http://doc.trolltech.com/4.2/qsettings.html#restoring-the-state-of-a-gui-application

Du kannst natürlich auch in einem zentral erreichbaren Objekt deines Programms, zB einem Singleton, das QSettings Objekt (oder die QSettings Objekte) ablegen und dannaus jeder anderen Komponente die dort wichtigen Einstellungen auslesen, bzw. reinschreiben.

Ciao,
_