1、概述
源码放在文章末尾
托盘图标控件
-
- 可设置托盘图标对应所属主窗体。
-
- 可设置托盘图标。
-
- 可设置提示信息。
-
- 自带右键菜单。
下面是demo演示:
项目部分代码如下:
#ifndef TRAYICON_H
#define TRAYICON_H/*** 托盘图标控件* 1. 可设置托盘图标对应所属主窗体。* 2. 可设置托盘图标。* 3. 可设置提示信息。* 4. 自带右键菜单。*/#include <QObject>
#include <QSystemTrayIcon>class QMenu;#ifdef quc
class Q_DECL_EXPORT TrayIcon : public QObject
#else
class TrayIcon : public QObject
#endif{Q_OBJECT
public:static TrayIcon *Instance();explicit TrayIcon(QObject *parent = 0);private:static QScopedPointer<TrayIcon> self;QWidget *mainWidget; //对应所属主窗体QSystemTrayIcon *trayIcon; //托盘对象QMenu *menu; //右键菜单bool exitDirect; //是否直接退出private slots:void iconIsActived(QSystemTrayIcon::ActivationReason reason);public://设置是否直接退出,如果不是直接退出则发送信号给主界面void setExitDirect(bool exitDirect);//设置所属主窗体void setMainWidget(QWidget *mainWidget); //显示消息void showMessage(const QString &title, const QString &msg,QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int msecs = 5000);//设置图标void setIcon(const QString &strIcon);//设置提示信息void setToolTip(const QString &tip);//获取和设置是否可见bool getVisible() const;void setVisible(bool visible);public Q_SLOTS://退出所有void closeAll();//显示主窗体void showMainWidget();Q_SIGNALS:void trayIconExit();
};#endif // TRAYICON_H