Fenster schließt nicht bei Empfang von destroyed()
Verfasst: 29. Mai 2007 18:08
Hallo,
ich möchte mir eine kleine Funktion basteln, mit der ich schnell mal einen Text als ein QLabel auf dem Bildschirm ausgeben kann. Z.B. für Debugging, kurze Benachrichtigung an den Benutzer etc. Aufgerufen werden soll das ganze mit einem Einzeiler:
Und hier ist mein Code, der auch tadellos kompiliert wird:
Wenn man nun aber dasjenige Widget schließt, von dem aus man die Funktion Meldung() aufgerufen hat, dann bleibt die Meldung weiter bestehen. Das Label wird also nicht destruiert. Ich dachte, dass dieses WA_DeleteOnClose = true in Verbindung mit dem destroyed-Signal auf den close-Slot genau das erledigen würde. Tut es aber nicht. Wo ist mein Denkfehler?
ich möchte mir eine kleine Funktion basteln, mit der ich schnell mal einen Text als ein QLabel auf dem Bildschirm ausgeben kann. Z.B. für Debugging, kurze Benachrichtigung an den Benutzer etc. Aufgerufen werden soll das ganze mit einem Einzeiler:
Code: Alles auswählen
Meldung("Dies ist die Meldung, die ausgegeben wird", this);Code: Alles auswählen
#ifndef MELDUNG_H
#define MELDUNG_H
#include <QLabel>
void Meldung(QString meldung_text, QWidget* ParentWidget)
{
QLabel *Label = new QLabel(meldung_text);
Label->setAttribute(Qt::WA_DeleteOnClose, true);
QObject::connect(ParentWidget, SIGNAL(destroyed()), Label, SLOT(close()));
Label->show();
}
#endif