初嘗QT不甚歡喜,CSDN上有非常多的朋友在為QT做出貢獻,我也愿意以主觀角度來分享QT,讓QT變得更好。
該源碼系作者個人撰寫,使用時請尊重作者,不要隨意篡改關于作者的信息。
版權所有:CSND_Ayo,轉載請注明出處:http://blog.csdn.net/csnd_ayo
為了讓你我都能得到提升,請您在評論區留下對我的建議,并附上您可愛的郵箱,我將給您送上源碼。
#ifndef CUSTOMSYSTEMTRAYICON_H#define CUSTOMSYSTEMTRAYICON_H#include <QSystemTrayIcon>#include <QWidget>/** 自定義系統托盤類* 作者:陳魯勇* 郵箱:727057301@QQ.com* 創建時間:2017年2月10日16:26:48* QT版本:5.0.2* CSDN:http://blog.csdn.net/csnd_ayo* *************************************** 說明:* 第一次使用instance時必須傳入主窗口的指針* 以保證托盤與程序相關聯,使用前請確保在QT.PRo中加入 C++11 的支持** 示例代碼: icon_ = CustomSystemTrayIcon::instance(this); icon_->setTray("托盤名字","托盤圖標資源地址", "托盤描述"); // 顯示托盤 icon_->showTray(); // 隱藏托盤 //icon_->hideTray();*/class QAction;class QMenu;class CustomSystemTrayIcon : public QWidget{ Q_OBJECTpublic: // 得到系統托盤實例 static CustomSystemTrayIcon* instance(QWidget* _this = nullptr); /* * 設置托盤 * 參數 _name:托盤標題 * 參數 _icon:托盤圖標 * 參數 _describe:托盤描述 * 圖標建議大小 20~40 */ void setTray(const QString& _name, const QString& _icon, const QString& _describe); void setTray(const QString& _name, const QString& _icon); void setTray(const QString& _name); // 顯示托盤 void showTray(void); // 隱藏托盤 void hideTray(void);private: explicit CustomSystemTrayIcon(QWidget *parent = 0); // 初始化 void init(void); // 初始化右鍵菜單 void initMenu(void); // 初始化托盤 void initTray(void); // 初始化信號 void initSignal(void);private slots: /* * 托盤點擊事件 * 參數 _action:具體的事件行為宏 */ void trayActivatedEvent(QSystemTrayIcon::ActivationReason _action);protected: // 托盤描述內容 QString trayDescribe_;private: // 隱藏按鈕(菜單) QAction* hideAction_ = nullptr; // 還原按鈕(菜單) QAction* restoreAction_ = nullptr; // 退出按鈕(菜單) QAction* quitAction_ = nullptr; // 根菜單 QMenu* menu_ = nullptr; // 托盤實例 QSystemTrayIcon* trayObject_ = nullptr; // 實例 static CustomSystemTrayIcon* self_;};#endif // CUSTOMSYSTEMTRAYICON_H
新聞熱點
疑難解答
圖片精選