[gelöst] Daten beim Beenden eines QT-Progs sichern. Wo/Wie?

Alles rund um die Programmierung mit Qt
Antworten
bw1faeh0
Beiträge: 94
Registriert: 10. Oktober 2007 14:48
Wohnort: Braunschweig

[gelöst] Daten beim Beenden eines QT-Progs sichern. Wo/Wie?

Beitrag 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
Zuletzt geändert von bw1faeh0 am 13. November 2007 10:42, insgesamt 1-mal geändert.
bw1faeh0
Beiträge: 94
Registriert: 10. Oktober 2007 14:48
Wohnort: Braunschweig

Re: Daten beim Beenden eines QT-Progs sichern. Wo/Wie?

Beitrag von bw1faeh0 »

bw1faeh0 hat geschrieben:GUten Morgen,
Oder kann ich in die Registry von Windows schreiben?
Scheinbar kann ich da was mit QSettings machen.
kitov
Beiträge: 36
Registriert: 29. November 2006 12:24

Re: Daten beim Beenden eines QT-Progs sichern. Wo/Wie?

Beitrag 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 .
bw1faeh0
Beiträge: 94
Registriert: 10. Oktober 2007 14:48
Wohnort: Braunschweig

Beitrag von bw1faeh0 »

Danke!

Aber warum lieber eine Ini?
bw1faeh0
Beiträge: 94
Registriert: 10. Oktober 2007 14:48
Wohnort: Braunschweig

Beitrag von bw1faeh0 »

Kann ich bei einer Ini den Namen der Ini und deren Pfad beeinflussen?
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

Beitrag von Volker »

Code: Alles auswählen

QSettings settings(QApplication::applicationDirPath()+QDir::separator()+"MeinProgramm.ini", QSettings::IniFormat, this);
zum Beispiel
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
bw1faeh0
Beiträge: 94
Registriert: 10. Oktober 2007 14:48
Wohnort: Braunschweig

Beitrag von bw1faeh0 »

ah, cool. danke!
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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?
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
kitov
Beiträge: 36
Registriert: 29. November 2006 12:24

Beitrag 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 .
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Da gibt es nichts auszuprobieren, INI-Dateien gehören ins Userverzeichnis.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
bw1faeh0
Beiträge: 94
Registriert: 10. Oktober 2007 14:48
Wohnort: Braunschweig

Beitrag 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.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag 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 ...
bw1faeh0
Beiträge: 94
Registriert: 10. Oktober 2007 14:48
Wohnort: Braunschweig

Beitrag 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 ;)
Antworten