Windows Dialoge: Parameter "parent" wozu wird er benötigt?
-
Hallo,
ich programmiere mit Qt unter Windows 7. Das Hauptfenster in meinem Programm ist QMainWindow. Diese Frage gilt aber wahrscheinlich für alle Windows Programmierung.
Mir ist aufgefallen, dass es anscheinend egal ist, ob in einem Dialog der Parameter "parent" auf "0" gesetzt oder ein Pointer auf das Elternfenster übergebeben wird.
In abgeleiteten Klassen legt der Qt-Designer sogar automatisch einen default Parameter "0" an, für den Fall dass der Wert nicht gesetzt wird.
Nun frage ich mich, welchen Vorteil es hat, wenn der "parent" Parameter mit dem Pointer des Elternfensters übergeben wird? Oder anders gefragt, welchen Nachteil kann es haben, wenn "parent" immer auf "0" gesetzt wird? Oder ist der Parameter "parent" im Grunde überflüssig?
-
hier wirds beschrieben:
http://doc.qt.io/qt-5.5/objecttrees.html
-
Abgesehen vom object tree glaub ich nicht, dass es egal ist. Ohne parent dürfte der Dialog ein eigenes Icon in der Taskleiste bekommen. Oder zumindest verhält sich das ganze anders, wenn du zwischen Fenstern wechselst usw...
-
Vergaß zu sagen, dass es um Modale Dialoge geht. Da ist ein Wechsel zwischen Dialogfenster und Hauptfenster nicht möglich, bevor der Dialog beendet ist.
Mechanics schrieb:
Ohne parent dürfte der Dialog ein eigenes Icon in der Taskleiste bekommen.
Oh man, da hatte ich Tomaten auf den Augen. Genau das ist es. Wird "parent" nicht angegeben, erscheint auf der Taskleiste ein zusätzliches Icon für das geöffnete Dialogfenster. Mit "parent" geschieht das nicht.
Danke euch beiden.
-
mireiner schrieb:
Da ist ein Wechsel zwischen Dialogfenster und Hauptfenster nicht möglich, bevor der Dialog beendet ist.
Aber zu einem anderen Programm. Und wenn du wieder deins in der Taskleiste anklickst, kommt das Hauptfenster nach vorne, reagiert aber nicht.