Seite 1 von 1

[gelöst] Wie Programm aus Taskleiste entfernen?

Verfasst: 15. November 2008 17:44
von Selur
Ich würde gerne beim Aufruf des MinimizeButtons meinen QDialog komplett in den SystemTray minimieren. Leider verschwindet aber das Programm nicht aus der Taskleiste in Windows.
Wenn ich anstatt dem MinimizeEvent auf das CloseEvent reagiere geht es, wenn ich mit close() den CloseEvent jedoch feuer (anstatt mit dem X-Button) klappt es ebenfalls nicht.

Hat jemand eine Ahnung wie ich einen QDialog komplett in den SystemTray
minimieren kann? (SystemTrayIcon ist vorhanden ;))

hier mal wie ich es als letztes versucht hatte :(

Code: Alles auswählen

void testDialog::trayIconActivated(QSystemTrayIcon::ActivationReason reason){
   if(reason == QSystemTrayIcon::Trigger){
      this->sysIcon->hide();
	  this->setWindowFlags(Qt::Dialog | Qt::WindowMinimizeButtonHint); //<- alle alten WindowFlags wieder herstellen
      this->show();
      this->showNormal();
   }
}

void testDialog::changeEvent(QEvent *event ){
   if(event->type() == QEvent::WindowStateChange && this->windowState() == Qt::WindowMinimized){
      this->minimizeToTray = true;
      this->close();
   }
}

void testDialog::closeEvent(QCloseEvent *event){
   if(this->minimizeToTray){
	this->sysIcon->show();
	this->setWindowFlags(Qt::SubWindow); //<- das hatte mir gefehlt :)
	event->ignore();
	this->minimizeToTray = false;
   } else {
      this->sysIcon->hide();
   }
}
Cu Selur

Verfasst: 22. November 2008 19:11
von Selur
Kleines Update: Unter Linux läuft es mit dem Code wie ich es mir gedacht hatte, nur unter Windows (XP) nicht. :|

Verfasst: 23. November 2008 17:26
von Zonk
Du kannst mit den Flags für das MainWindow steuern ob deine Software einen Eintrag in der Taskleiste haben soll. Zumindest bei mir hat das schonmal funktioniert, ziehmlich out.of-the-box sogar.

Gruß der Zonk

Verfasst: 24. November 2008 07:51
von CaptnChaos
Das Flag was du setzen musst ist Qt::SubWindow.

Verfasst: 24. November 2008 23:36
von Selur
Danke für die Hinweise werde ich antesten. :)
-> Klappt wunderbar! :mrgreen:
(hab mal den Titel des Threads angepasst und die Verbesserung oben eingetragen)

Cu Selur