[gelöst] QSettings

Alles rund um die Programmierung mit Qt
Antworten
stippy
Beiträge: 80
Registriert: 29. Juli 2005 09:38
Wohnort: Mönchengladbach

[gelöst] QSettings

Beitrag von stippy »

Hallo zusammen,

ich verwende gerade QSettings und habe damit folgendes Problem.

Wenn ich in meinen Funktionen schreiben und lesen jeweils ein Objekt vom Typ QSettings anlege funktioniert das Speichern der Einstellungen korrekt.
Lege ich nun jedoch eine Membervariable an die also für beide Funktionen gehen müßte werden die Einstellungen nicht gespeichert.

Kann mir jemand weiter helfen?

Gruss, Dirk
stippy
Beiträge: 80
Registriert: 29. Juli 2005 09:38
Wohnort: Mönchengladbach

Beitrag von stippy »

Habe mein Programm eben nochmal umgeschrieben.

Das Problem tritt nur auf, wenn ich einen Zeiger auf QSettings als Member deklariere und dann ein Objekt mit new erzeuge.

Komisch echt! :-)
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Wer hat dir denn gesagt, das du QSettings als Pointer benutzen sollst?

Ich sage dir, du solltest es nicht tun.
stippy
Beiträge: 80
Registriert: 29. Juli 2005 09:38
Wohnort: Mönchengladbach

Beitrag von stippy »

Warum nicht?

Was kann es für einen Grund geben der dagegen spricht?
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Ok, also wenn du mir so kommst. Was gibt es für einen Grund keinen Pointer zu nehmen, wie es eben auch in den Beispielen der Dokumentation ist?

Trolltech denkt sich bei den Beispielen schon was. Außerdem sind Pointer immer auch ein großes Risiko, was nicht sein muß bei eben QSettings.
stippy
Beiträge: 80
Registriert: 29. Juli 2005 09:38
Wohnort: Mönchengladbach

Beitrag von stippy »

Mir ist das schon aufgefallen, dass bei den Beispielen keine Pointer verwendet werden.

Es ist halt nur so, dass bei mir fast alle Membervariablen Pointer sind. Beim ersten Implementieren hab ichs halt so umgesetzt und es hat nicht funktioniert.

Wenn Trolltech das mit Absicht so macht, dann müßte in der Doku stehen, dass es Probleme mit Pointern gibt.
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Mh, also es gibt bei der Qt Programmierung gewisse Regeln, die jetzt nicht unbedingt explizit festgelegt sind.

Außer Widgets erstmal generell nichts als Pointer.

Es gibt natürlich wie immer Ausnahmen, aber das muss man einfach lernen.

Gut, wenn alle deine Membervariablen Pointer sind, dann kannst du dich schon sehr glücklich schätzen, dass du soweit gekommen bist. Einen Vorteil bringt es allerdings überhaupt nicht.

Siehe QString in Qt4, die Daten eines QString's werden intern als Pointer gehalten, als Pointer verwenden würde man sie nicht. Es ist sinnlos.

Und wenn etwas sinnlos ist, lässt man es doch lieber sein, oder?
stippy
Beiträge: 80
Registriert: 29. Juli 2005 09:38
Wohnort: Mönchengladbach

Beitrag von stippy »

Ich habe bisher glaub ich nur Widgets! Das sind alles Pointer!

Gut, grundsätzlich habe ich natürlich kein Problem damit. Man muß es eben nur wissen.
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Ok, klang jetzt erstmal so, als sei dein ganzes Programm darauf gestützt, dass du nur Pointer verwendest.

Halte dich immer an die Beispiele, dann läuft fast alles unter Qt Super.

Also auswendig weiß ich nur, dass man QHTTP und Zeug unbedingt als Pointer verwenden muss von den nicht Widget Klassen, sonst sind alle anderen eben keine Pointer Klassen.
pumbah
Beiträge: 31
Registriert: 19. August 2005 21:13

Nicht geschrieben, oder nicht gelesen?

Beitrag von pumbah »

Hi,

auch wenn der Beitrag als gelöst markiert wurde: Ich hatte vor kurzem ein ähnliches Problem (unter Qtperl). Allerdings lag das nicht daran, dass die Settings nicht richtig gespeichert wurden, sondern, dass die Funktion zum Lesen offensichtlich nicht in den gleichen Dateien gesucht hat, in denen die Funktion zum Schreiben die Einstellungen geschrieben hat.

Nur so als Einfwurf!:-)

cu,

pumbah
Antworten