Hallo 1. Versuche ein QT C++ Programm dazu zu bringen, ein Tray Icon zu erstellen. 2. Der Nutzer soll die Moeglichkeit bekommen, statt das Programm zu beenden nur in den Tray zu minimieren. 3. Das Programm soll kein Button in der Window List erstellen, da ja immer ein Icon im Tray ist. 4. Der Icon soll intelligent sein: Wenn der Status "Online" gesetzt ist, dann soll ein gewisser Icon gezeigt werden, wenn "Offline", dann soll ein anderer Icon gezeigt werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | void MailBox::buildTrayIcon(){ std::string name = "Away"; // if(AVAILABILITY) name = "Available"; // if(INCOMING) name = name + "Incoming"; name = name + ".png"; QMenu *trayMenu = new QMenu(this); trayMenu->addAction(new QAction("Available", this)); // dummy action trayMenu->addAction(new QAction("Quit", this)); // dummy action tray = new QSystemTrayIcon(this); tray->setIcon(QIcon("Away.png")); tray->setContextMenu(trayMenu); tray->show(); } |
Des weiteren gibt es die Option, das Programm beim Schliessen nur in den Tray zu minimieren, an statt das Programm vollkommen zu schliessen.
Das obige Beispiel laeuft, aber wirft folgende Meldung
Starting /srv/workspace/comClient-build-desktop/comClient... Could not save icon as '/tmp/sni-qt_comClient_11706-lfVASG/icons/hicolor/16x16/apps/comClient_11706_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_11706-lfVASG/icons/hicolor/22x22/apps/comClient_11706_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_11706-lfVASG/icons/hicolor/32x32/apps/comClient_11706_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_11706-lfVASG/icons/hicolor/48x48/apps/comClient_11706_1fd07571a5278bdba6564f8b47480a18.png' /srv/workspace/comClient-build-desktop/comClient exited with code 0 Starting /srv/workspace/comClient-build-desktop/comClient... Could not save icon as '/tmp/sni-qt_comClient_12899-7htCke/icons/hicolor/16x16/apps/comClient_12899_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_12899-7htCke/icons/hicolor/22x22/apps/comClient_12899_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_12899-7htCke/icons/hicolor/32x32/apps/comClient_12899_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_12899-7htCke/icons/hicolor/48x48/apps/comClient_12899_1fd07571a5278bdba6564f8b47480a18.png' The program has unexpectedly finished. /srv/workspace/comClient-build-desktop/comClient exited with code 0 /srv/workspace/comClient-build-desktop/comClient exited with code 0 Starting /srv/workspace/comClient-build-desktop/comClient... Could not save icon as '/tmp/sni-qt_comClient_12951-YeTcYT/icons/hicolor/16x16/apps/comClient_12951_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_12951-YeTcYT/icons/hicolor/22x22/apps/comClient_12951_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_12951-YeTcYT/icons/hicolor/32x32/apps/comClient_12951_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_12951-YeTcYT/icons/hicolor/48x48/apps/comClient_12951_1fd07571a5278bdba6564f8b47480a18.png' /srv/workspace/comClient-build-desktop/comClient exited with code 0 Starting /srv/workspace/comClient-build-desktop/comClient... Could not save icon as '/tmp/sni-qt_comClient_12960-Mzrpgr/icons/hicolor/16x16/apps/comClient_12960_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_12960-Mzrpgr/icons/hicolor/22x22/apps/comClient_12960_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_12960-Mzrpgr/icons/hicolor/32x32/apps/comClient_12960_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_12960-Mzrpgr/icons/hicolor/48x48/apps/comClient_12960_1fd07571a5278bdba6564f8b47480a18.png' /srv/workspace/comClient-build-desktop/comClient exited with code 0 Starting /srv/workspace/comClient-build-desktop/comClient... Could not save icon as '/tmp/sni-qt_comClient_13176-ubWGVX/icons/hicolor/16x16/apps/comClient_13176_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_13176-ubWGVX/icons/hicolor/22x22/apps/comClient_13176_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_13176-ubWGVX/icons/hicolor/32x32/apps/comClient_13176_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_13176-ubWGVX/icons/hicolor/48x48/apps/comClient_13176_1fd07571a5278bdba6564f8b47480a18.png' /srv/workspace/comClient-build-desktop/comClient exited with code 0 Starting /srv/workspace/comClient-build-desktop/comClient... Could not save icon as '/tmp/sni-qt_comClient_13189-IZXAyM/icons/hicolor/16x16/apps/comClient_13189_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_13189-IZXAyM/icons/hicolor/22x22/apps/comClient_13189_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_13189-IZXAyM/icons/hicolor/32x32/apps/comClient_13189_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_13189-IZXAyM/icons/hicolor/48x48/apps/comClient_13189_1fd07571a5278bdba6564f8b47480a18.png' /srv/workspace/comClient-build-desktop/comClient exited with code 0 Starting /srv/workspace/comClient-build-desktop/comClient... QSystemTrayIcon::setVisible: No Icon set /srv/workspace/comClient-build-desktop/comClient exited with code 0 Starting /srv/workspace/comClient-build-desktop/comClient... Could not save icon as '/tmp/sni-qt_comClient_13216-ypfajf/icons/hicolor/16x16/apps/comClient_13216_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_13216-ypfajf/icons/hicolor/22x22/apps/comClient_13216_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_13216-ypfajf/icons/hicolor/32x32/apps/comClient_13216_1fd07571a5278bdba6564f8b47480a18.png' Could not save icon as '/tmp/sni-qt_comClient_13216-ypfajf/icons/hicolor/48x48/apps/comClient_13216_1fd07571a5278bdba6564f8b47480a18.png' /srv/workspace/comClient-build-desktop/comClient exited with code 0
Gruss