1.添加頭文件和成員變量
mainWindow.h #include <QSystemTrayIcon> //t托盤類 #include <QDesktopServices> //桌面事件類 #include <QAction> #include <QMenu> private: QMenu *trayMenu;//托盤菜單 QSystemTrayIcon *tray;//托盤圖標添加成員 QAction *restoreAction;//托盤圖標右鍵點擊時彈出選項 QAction *quitAction;//托盤圖標右鍵點擊時彈出選項
2.初始化成員變量
mainWindow.cpp //***托盤*** tray= new QSystemTrayIcon(this);//初始化托盤對象tray tray->setIcon(QIcon(QPixmap(":/icon/appIcon.png")));//設定托盤圖標,引號內是自定義的png圖片路徑 tray->setToolTip("進程計時器"); //提示文字 QString title="APP Message"; QString text="進程計時器"; tray->show();//讓托盤圖標顯示在系統托盤上 tray->showMessage(title,text,QSystemTrayIcon::Information,3000); //最后一個參數為提示時長,默認10000,即10s restoreAction = new QAction("打開", this); connect(restoreAction, SIGNAL(triggered()), this, SLOT(show())); quitAction = new QAction("退出", this); connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit())); trayMenu = new QMenu(this); trayMenu->addAction(restoreAction); trayMenu->addSeparator(); trayMenu->addAction(quitAction); tray->setContextMenu(trayMenu);
托盤圖標右鍵點擊菜單對應的槽函數可以根據自己的需求去寫。
3.添加雙擊托盤圖標打開窗口功能
3.1 添加槽函數
void Widget::showWidget(QSystemTrayIcon::ActivationReason reason) { switch(reason) { case QSystemTrayIcon::Trigger://單擊托盤圖標 break; case QSystemTrayIcon::DoubleClick://雙擊托盤圖標 this->showNormal(); break; default: break; } }
3.2 連接信號和槽
connect(tray,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(showWidget(QSystemTrayIcon::ActivationReason reason)));
之后就可以雙擊托盤圖標打開隱藏的窗口了。