#include "widget.h" #include "ui_widget.h" #include "menudialog.h" #include #include #include #include #include #include #include Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); setWindowFlags(Qt::Tool); CreateSystemTrayIcon(); //创建托盘 } Widget::~Widget() { delete ui; } void Widget::CreateSystemTrayIcon() { QWidgetAction *pWdtAction = new QWidgetAction(this); MenuDialog * menudialog = new MenuDialog(); pWdtAction->setDefaultWidget(menudialog); //初始化菜单并添加项 QMenu* trayMenu = new QMenu(this);//菜单 trayMenu->addAction(pWdtAction); //创建一个系统托盘 QSystemTrayIcon* trayIcon = new QSystemTrayIcon(this); trayIcon->setIcon(QIcon("://app.ico")); //设置托盘图标 trayIcon->setToolTip("Shell_Notify"); //鼠标放上去显示的东东 trayIcon->setContextMenu(trayMenu); //设置菜单 trayIcon->show(); connect(trayIcon, &QSystemTrayIcon::activated, this, [=](QSystemTrayIcon::ActivationReason reason) { menudialog->uodateNumbers(); if( reason == 3){ //鼠标左键 trayIcon->contextMenu()->exec(QCursor::pos()); } }); }