[gelöst] Wie Programm aus Taskleiste entfernen?

Alles rund um die Programmierung mit Qt
Antworten
Selur
Beiträge: 27
Registriert: 19. Juni 2008 22:07

[gelöst] Wie Programm aus Taskleiste entfernen?

Beitrag 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
Zuletzt geändert von Selur am 24. November 2008 23:52, insgesamt 1-mal geändert.
Selur
Beiträge: 27
Registriert: 19. Juni 2008 22:07

Beitrag von Selur »

Kleines Update: Unter Linux läuft es mit dem Code wie ich es mir gedacht hatte, nur unter Windows (XP) nicht. :|
Zonk
Beiträge: 51
Registriert: 17. September 2006 15:28
Kontaktdaten:

Beitrag 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
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

Das Flag was du setzen musst ist Qt::SubWindow.
Selur
Beiträge: 27
Registriert: 19. Juni 2008 22:07

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