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