托盘图标显示
一、效果演示
二、代码展示
1.头文件
#ifndef DEMO_SYSTEMTRAYICON_H
#define DEMO_SYSTEMTRAYICON_H
#include <QMainWindow>
#include <QSystemTrayIcon>//系统托盘图标类
#include <QMenu>//菜单
#include <QAction>//菜单选项
namespace Ui {
class Demo_systemTrayIcon;
}
class Demo_systemTrayIcon : public QMainWindow
{
Q_OBJECT
public:
explicit Demo_systemTrayIcon(QWidget *parent = 0);
~Demo_systemTrayIcon();
public slots:
void onShow();
void onHide();
void onExit();
private:
Ui::Demo_systemTrayIcon *ui;
QSystemTrayIcon *m_systemTrayIcon;//托盘图标
QMenu *m_rightMenu;//右键菜单
};
#endif // DEMO_SYSTEMTRAYICON_H
2.源文件
#include "demo_systemtrayicon.h"
#include "ui_demo_systemtrayicon.h"
Demo_systemTrayIcon::Demo_systemTrayIcon(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Demo_systemTrayIcon)
{
ui->setupUi(this);
m_systemTrayIcon = new QSystemTrayIcon(QIcon(":/icon/demo_goal.ico"),this);//构造托盘图标
m_rightMenu = new QMenu(tr("Demo_systemTrayIcon"),this);//构造右击菜单
//方法一
// m_rightMenu->addAction(QIcon(":/icon/demo_preview_pane.ico"),tr("show"),this,&Demo_systemTrayIcon::onShow);
// m_rightMenu->addAction(QIcon(":/icon/demo_hide.ico"),tr("hide"),this,&Demo_systemTrayIcon::onHide);
// m_rightMenu->addAction(QIcon(":/icon/demo_shutdown.ico"),tr("exit"),this,&Demo_systemTrayIcon::onExit);
//方法二
m_rightMenu->addAction(QIcon(":/icon/demo_preview_pane.ico"),tr("show"),[=](){
show();
});
m_rightMenu->addAction(QIcon(":/icon/demo_hide.ico"),tr("hide"),[=](){
hide();
});
m_rightMenu->addAction(QIcon(":/icon/demo_shutdown.ico"),tr("exit"),[=](){
close();
});
m_systemTrayIcon->setContextMenu (m_rightMenu);
m_systemTrayIcon->show ();
}
Demo_systemTrayIcon::~Demo_systemTrayIcon()
{
delete ui;
}
void Demo_systemTrayIcon::onShow()
{
show ();
}
void Demo_systemTrayIcon::onHide()
{
hide();
}
void Demo_systemTrayIcon::onExit()
{
close ();
}