Alles rund um die Programmierung mit Qt
reimer
Beiträge: 14 Registriert: 27. Juni 2008 19:21
Beitrag
von reimer » 23. Juli 2008 22:04
Mal so ne Verständnisfrage. Gibt Qt den Speicher, den
label belegt, wieder frei?
Code: Alles auswählen
...
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QLabel *label = new QLabel("Werde ich gelöscht?");
label->show();
return app.exec();
}
Ich bin mir zu 99% sicher, dass ich den Speicher manuall wieder freigeben muß, aber wie gesagt, nur zu 99%.
upsala
Beiträge: 3946 Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:
Beitrag
von upsala » 23. Juli 2008 22:09
In diesem speziellen Fall nicht, da du dem QLabel keinen Parent angegeben hast.
reimer
Beiträge: 14 Registriert: 27. Juni 2008 19:21
Beitrag
von reimer » 23. Juli 2008 22:37
Mit Q
Application::activeWindow() kann ich
label ein Parent übergeben und wird somit dann automatisch gelöscht, wenn der Parent gelöscht wird?
Danke übrigens für die schnelle Antwort
Dieses Forum bewerte ich ab sofort als "Express-Forum"
upsala
Beiträge: 3946 Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:
Beitrag
von upsala » 24. Juli 2008 09:12
Du hast keinen passenden Parent, da dein QLabel dein einziges QWidget ist. Du kannst nur das Flag Qt::WA_DeleteOnClose setzten, und wenn dein Widget/deine Anwendung das Kommanda zum schließen des Widgets bekommt wird das Widget gelöscht.
QApplication::activeWindow() sollte ein Verweis auf dein QLabel sein, bringt dir also wieder nichts.