Programm beendet sich nicht mit flag Qt::Tool

Alles rund um die Programmierung mit Qt
Antworten
bp
Beiträge: 44
Registriert: 21. Januar 2009 11:25

Programm beendet sich nicht mit flag Qt::Tool

Beitrag von bp »

Hallo,

ich habe ein Programm, welches sich nicht in der Task-Leiste einnisten soll.
Dafür habe ich meinem Hauptfenster das Flag Qt::Tool mit auf den Weg gegeben.
Das funktioniert auch ganz wunderbar, bis zu dem Zeitpunkt wo ich das Programm schließen will. Es wird alles ordentlich beendet, doch das Programm verweilt weiterhin in der Process-Liste des Taskmanagers unter Windows.

Hat jemand von euch schon die gleichen Erfahrungen gemacht und evtl. dafür schon eine Lösung gefunden.

Die suche ergab leider nur einen Eintrag von 2006, der allerdings unbeantwortet blieb.

bp
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wie beendest Du Deine Applikation denn?
Siehe auch QApplication:: setQuitOnLastWindowClosed()
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
bp
Beiträge: 44
Registriert: 21. Januar 2009 11:25

Beitrag von bp »

Je nachdem, wie ich das Programm beende, Tasturkürzel oder eigener Button, wird ein slot aufgerufen, der meine noch laufenden Threads beendet. erst wenn alle threads beendet sind, dann wird das Fenster geschlosse.

Das mit QApplication::setQuitOnLastWindowClosed() hat leider nicht geholfen.

Habe das Prblem jetzt erst einmal mit QApplication::quit() behoben.

Trotzdem danke für den hinweis.

bp
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

QApplication::quit() sollte man schon aufrufen wenn eine QApplication beendet werden soll - ja.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Herzogswalder
Beiträge: 79
Registriert: 11. Oktober 2009 00:37
Wohnort: Dresden

Beitrag von Herzogswalder »

Das folgende schafft Abhilfe:

Code: Alles auswählen

this->setAttribute(Qt::WA_QuitOnClose;
Ich benutze nie QApplication::quit(), um ein programm zu beenden, da es reicht, das Hauptfenster zu schließen,
vorrausgesetzt, dieses Attribut ist gesetzt. Bei Qt::Tool ist dies standardmäßig nicht der Fall.
Gruß, Herzogswalder
Qt 4.8, OS X Mountain Lion
bp
Beiträge: 44
Registriert: 21. Januar 2009 11:25

Beitrag von bp »

Das werde ich noch mal ausprobieren.

Danke nochmals an die Helfer

bp
Antworten