Welche Heap-Variablen müssen gelöscht werden?

Alles rund um die Programmierung mit Qt
Antworten
Colin Finck
Beiträge: 6
Registriert: 22. April 2006 19:59
Kontaktdaten:

Welche Heap-Variablen müssen gelöscht werden?

Beitrag von Colin Finck »

Hallo,

In den Quellcodedateien von Widgets, die mit dem Qt Designer erstellt wurden, habe ich folgenden Kommentar gefunden: "no need to delete child widgets, Qt does it all for us".

Welche Widgets werden alle von Qt gelöscht? Trifft dies auch auf Widgets zu, welche irgendwann zur Laufzeit, z.B. beim Klick auf einen Button, erzeugt werden? Oder trifft es sogar auf alle Variablen in einem Qt-Programm zu, sodass ich "delete" überhaupt nicht verwenden muss?

Vielen Dank im Voraus,

Colin Finck
Homepage: www.ColinFinck.de
Programme, PE Builder-Stuff (Plugins und Linkliste), Add-Ins und Sonstiges
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

Beitrag von Volker »

Soweit ich weiss trifft das nur auf Variablen zu, die ein Parent übergeben bekommen oder mit

Code: Alles auswählen

setAttribute(Qt::WA_DeleteOnClose, true);
initialisiert wurden (geht glaub ich nur bei Widgets). Dabei wird das Widget oder das QObject aber nur gelöscht wenn auch das Parent gelöscht wird (was bei einem QMainWidget beim beenden passiert)

Aber ich lass mich gern eines besseren belehren, wenn jemand näheres weiss.

Die Funktion deleteLater() gibts auch noch um ein Widget zu löschen. Aber wie das genau funktioniert hab ich noch nicht näher untersucht
Antworten