Gibt Qt den Speicher frei?

Alles rund um die Programmierung mit Qt
Antworten
reimer
Beiträge: 14
Registriert: 27. Juni 2008 19:21

Gibt Qt den Speicher frei?

Beitrag von reimer »

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 »

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 »

Mit QApplication::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" :D
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

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.
Antworten