ich versuche ein QSystemTrayIcon zu implementieren, welches in kraft tritt, wenn der user das programm minimiert. dabei habe ich ein problem: wenn ich das event abfange, wenn das fenster minimiert wird, kann ich zwar das fenster auf setVisible(false) bzw. hide() setzten, das fenster ist aber unten in der taskleiste immernoch aufgeführt und kann durch doppelklick drauf wieder restored werden... das ist unerwünscht. mein zuieo ist es, beim minimieren des fensters das fenster gleich unsichtbar zu machen und so lange unsichtbar zu erhalten, bis über die menubar des trayicons das fenster wieder angefordert wird. hat jemand eine idee?
hier der code, der nicht so ganz klappt:
Code: Alles auswählen
void MainWindow::changeEvent(QEvent *ev)
{
......
//das fenster ist also minimiert, dann folgendes ausführen
if(!m_trayIcon.shutDownRequested() )
{
if (m_trayIcon.isVisible()) {
// kleine message anzeigen, dass das programm weiter läuft
m_trayIcon.showMessage( tr("Program remains running"), tr("The program will keep running in the "
"system tray. To terminate the program, "
"choose <b>Quit</b> in the context menu "
"of the system tray entry."));
//fenster verstecken
hide();
m_trayIcon.setRestoreUiActionEnabled(true);
}
}
}