Seite 1 von 1

Programm beendet sich nicht mit flag Qt::Tool

Verfasst: 27. Januar 2010 12:35
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

Verfasst: 27. Januar 2010 13:27
von Christian81
Wie beendest Du Deine Applikation denn?
Siehe auch QApplication:: setQuitOnLastWindowClosed()

Verfasst: 27. Januar 2010 15:35
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

Verfasst: 27. Januar 2010 16:55
von Christian81
QApplication::quit() sollte man schon aufrufen wenn eine QApplication beendet werden soll - ja.

Verfasst: 27. Januar 2010 20:03
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.

Verfasst: 28. Januar 2010 13:41
von bp
Das werde ich noch mal ausprobieren.

Danke nochmals an die Helfer

bp