在别人代码基础上做的,课设刚好用上了,贴出来分享Qt5.5.1实现。

图片自己找。

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QTimer>
#include <QMenu>
#include <QCloseEvent>
#include <QMessageBox>
#include <QSystemTrayIcon>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog {
    Q_OBJECT
public:
    Dialog(QWidget *parent = 0);
    ~Dialog();
    void InitUi();
    void InitTray();                                //初始化托盘
    void InitLayout();
    void closeEvent(QCloseEvent *);    //在关闭窗口时候要重写该函数,为了最小化到托盘,而不是退出程序
    void ShowMessageBox();        //像是托盘图表的messagebox();
protected:
    void changeEvent(QEvent *e);

private:
    Ui::Dialog *ui;
    QSystemTrayIcon *tray;
    QTimer *timer;         //用于闪烁ICON的定时器
    int TimerCount;      //用于计算定时器超时次数,单数显示图标,双数不显示  并且为0时候表示没有消息

private slots:
    void MenuExit();       //右键菜单  退出
    void ShowNormal();  //正常显示
    void iconIsActived(QSystemTrayIcon::ActivationReason); //托盘图表活动,无论是鼠标悬浮,或者双击,或者单击
    void ShowClickMsg();  //点击了消息框后的响应函数
    void qq_msg_com();
    void updateIcon();       //定时器刚

};


#endif // DIALOG_H
dialog.h

相关文章: