Seite 1 von 1
[gelöst] Daten beim Beenden eines QT-Progs sichern. Wo/Wie?
Verfasst: 13. November 2007 07:13
von bw1faeh0
GUten Morgen,
ich möchte, wenn ich ein Programm beende, gewisse Konfigurationsdaten sichern. Dazu dachte ich daran eine Konfigurationsdatei zu nutzen.
Wo muss die Implementierung rein?
In den Destruktor des QMainWindow?
Oder gibt es spezielle Methoden, die ich überschreiben muss?
Oder kann ich in die Registry von Windows schreiben?
Grüße
Christian
Re: Daten beim Beenden eines QT-Progs sichern. Wo/Wie?
Verfasst: 13. November 2007 07:17
von bw1faeh0
bw1faeh0 hat geschrieben:GUten Morgen,
Oder kann ich in die Registry von Windows schreiben?
Scheinbar kann ich da was mit QSettings machen.
Re: Daten beim Beenden eines QT-Progs sichern. Wo/Wie?
Verfasst: 13. November 2007 08:56
von kitov
bw1faeh0 hat geschrieben:GUten Morgen,
ich möchte, wenn ich ein Programm beende, gewisse Konfigurationsdaten sichern. Dazu dachte ich daran eine Konfigurationsdatei zu nutzen.
Wo muss die Implementierung rein?
In den Destruktor des QMainWindow?
Oder gibt es spezielle Methoden, die ich überschreiben muss?
Oder kann ich in die Registry von Windows schreiben?
Grüße
Christian
void closeEvent(QCloseEvent* event) reimplementieren (weitere
Hilfe in Qt-Assistant)
und benutz für deine Einstellungen lieber eine INI-Datei .
Verfasst: 13. November 2007 09:02
von bw1faeh0
Danke!
Aber warum lieber eine Ini?
Verfasst: 13. November 2007 09:56
von bw1faeh0
Kann ich bei einer Ini den Namen der Ini und deren Pfad beeinflussen?
Verfasst: 13. November 2007 10:16
von Volker
Code: Alles auswählen
QSettings settings(QApplication::applicationDirPath()+QDir::separator()+"MeinProgramm.ini", QSettings::IniFormat, this);
zum Beispiel
Verfasst: 13. November 2007 10:41
von bw1faeh0
ah, cool. danke!
Verfasst: 13. November 2007 11:17
von macman
Und wenn Du da nicht schreiben darfst wo Du schreiben willst? Gibt es dann keine INI oder wird doch ins User-Verzeichnis geschrieben?
Verfasst: 13. November 2007 11:58
von kitov
macman hat geschrieben:Und wenn Du da nicht schreiben darfst wo Du schreiben willst? Gibt es dann keine INI oder wird doch ins User-Verzeichnis geschrieben?
Probier es aus .
Verfasst: 13. November 2007 12:04
von macman
Da gibt es nichts auszuprobieren, INI-Dateien gehören ins Userverzeichnis.
Verfasst: 13. November 2007 12:22
von bw1faeh0
Ich will das schreiben in Ini-Dateien nutzen, um spezielle Daten zu sichern. So dass ich mir nicht die Arbeit machen muss, eigene Konfigurationsdateien zu parsen.
Verfasst: 13. November 2007 12:35
von RHBaum
Genau da fuer sind die DInger auch da,
WIr nutzen das hier auch intensiv, und funktioniert super.
Warum willst du die daten erst wegspeichern, wenn die Application schliesst ?
Normal aender ich sie gleich immer, wenn der User was an den "einstellungen" aendert.
Wenns unbedingt sein muss, wegen der Art der date, ist das close event eine moeglichkeit.
Ich bau dann aber eher nen object, was die Konfiguration in ner Datenstruktur haelt. Zum lesen und schreiben nutzt das nen qSetting object dann. Wenn Du das DIng als QObject ausfuerst, klingt sich ja das in den auto delete mechanismus ein, und du kannst im destruktor sichern, da bist sicher das das auch funzt wenn die App nicht ueber normale Events beendet wird (kill) zumidnest wenn das erwunscht ist .... nen richtig harten Crash / Abschuss faengst aber auch ned ab damit.
Fuer normale zwecke ist sicher die Close Event Methode die sauberere (in nem DTor sollt man ned mehr so viel kritisches machen)
Ini format deshalb, weil Nativ unter windows dann die regestry benutzt wird. Funktioniert zwar prinzipiell auch super, aber reg ist halt schmutz ... pfui pfui ... ^^
Ciao ...
Verfasst: 13. November 2007 12:50
von bw1faeh0
Die Ini-Datei wird immer dann geschrieben, wenn der User auf den Speichern-Button gedrückt hat.
Wenn das Programm geschlossen wird, werden derzeit die Konfigurationen in der Registry gesichert.
Das sind zwei unterschiedliche Gebiete. Nur der Thread hat sich ein wenig zu dem anderen hin entwickelt
