Widget nach Schließung eines Dialogs ansprechen

Alles rund um die Programmierung mit Qt
Antworten
CLRS530
Beiträge: 155
Registriert: 8. Oktober 2007 18:00

Widget nach Schließung eines Dialogs ansprechen

Beitrag von CLRS530 »

Ich rufe eine Instanz von QDialog mit exec auf und lasse mir auf die Acceped Meldung den currentText einer QComboBox durch eine Getter-Funktion geben. Die Instanz von QComboBox ist dann natürlich noch vorhanden und der ui pointer auch noch nicht zerstört. Trotzdem ist das Fenster geschlossen und deshalb bin ich mir nicht sicher, ob solch ein Vorgehen korrekt ist.
Bei Delphi wurde mir das beigebracht so vorzugehen, ohne lokale Variablen zu erstellen, aber bei C++ kann das etwas anderes sein.
Im übrigen klappt es in meinem Fall Aber das heißt. Ich will aber sichergehen keinen Speicherzugriffsfehler oder ähnliches auszulösen.
Der Dialog ist mit dem Designer zusammengeklick und dann mit setupUi erstellt.
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

Ganz simpel: so lang du dein Dialog Objekt nicht löscht, darfst du drauf zugreifen. Warum sollten die UI Widgets gelöscht werden/sein, wenn das Fenster geschlossen wird?
CLRS530
Beiträge: 155
Registriert: 8. Oktober 2007 18:00

Beitrag von CLRS530 »

Nunja, im Grunde gibt es dazu keinen, ansonsten käme ich nicht auf die Idee. Allerdings könnte es doch sein, dass die Widgets bei show und close erstellt respektive zerstört werden, auch wenn setupui und delete ui auf etwas anderes hindeuten.
Es ist ganz einfach ein komisches Gefühl, zumindestens für mich, ein Widget eines Dialoges zu benutzen welches zuvor geschlossen wurde.
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Allerdings könnte es doch sein, dass die Widgets bei show und close erstellt respektive zerstört werden
"könnte sein" passt nicht in den Wortschatz des Programmierers :wink:
Siehe:
http://doc.trolltech.com/4.5/qwidget.html#close
"close()" ist (fast) nur ein "hide()"... ausser bei gesetztem "Qt::WA_DeleteOnClose"-Flag
Antworten