Seite 1 von 1

Widget nach Schließung eines Dialogs ansprechen

Verfasst: 17. März 2009 16:55
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.

Verfasst: 17. März 2009 17:27
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?

Verfasst: 17. März 2009 17:31
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.

Verfasst: 17. März 2009 19:19
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