网站建设与管理课程介绍,纯html静态网站,广发证券 网站谁做的,官网最新版cmsv6概述系统托盘就是在系统桌面底部特定的区域显示运行的程序。windows在任务栏状态区域#xff0c;linux在布告栏区域。应用程序系统托盘功能#xff0c;是比较普遍的功能#xff0c;本篇将详细的介绍如何实现该功能。演示Demo实现功能#xff1a;1.应用启动后#xff0c;任…概述系统托盘就是在系统桌面底部特定的区域显示运行的程序。windows在任务栏状态区域linux在布告栏区域。应用程序系统托盘功能是比较普遍的功能本篇将详细的介绍如何实现该功能。 演示Demo实现功能1.应用启动后任务栏系统托盘可以看到该程序。2.点击右上角×关闭窗口自动隐藏窗口托盘可以看到该程序。3.鼠标在托盘图标上右键弹出退出程序菜单栏并带有图标。步骤1.工程中新建TrayDialog类基类是QDialog在界面上添加Text Browser控件和提示信息。2.在TrayDialog.h头文件中添加#include 包含文件3.添加成员变量QSystemTrayIcon m_systray信号槽响应函数int OnSystemTrayClicked(QSystemTrayIcon::ActivationReason reason);int OnExit();重写closeEvent(QCloseEvent *event)函数完整代码如下#pragma once#pragma execution_character_set(utf-8)#include #include #include ui_TrayDialog.hclass TrayDialog : public QDialog{ Q_OBJECTpublic: TrayDialog(QWidget *parent Q_NULLPTR); ~TrayDialog();private: void closeEvent(QCloseEvent *event);private slots: int OnSystemTrayClicked(QSystemTrayIcon::ActivationReason reason); int OnExit();private: Ui::TrayDialog ui; QSystemTrayIcon m_systray;};4.在Qt Designer中添加Action用于托盘右键退出程序。5.构造函数TrayDialog(QWidget *parent)中添加如下代码 //设置提示文字 m_systray.setToolTip(系统托盘演示程序); // 设置托盘图标 m_systray.setIcon(QIcon(:/qtlearn/Resources/EXE.ico)); //托盘菜单项 QMenu * menu new QMenu(); menu-addAction(ui.actionExit); m_systray.setContextMenu(menu); // 关联托盘事件 connect(m_systray, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(OnSystemTrayClicked(QSystemTrayIcon::ActivationReason))); //显示托盘 m_systray.show(); //托盘菜单响应 connect(ui.actionExit, SIGNAL(triggered()), this, SLOT(OnExit()));6.关闭窗口事件响应函数/************************************ Brief: 点击关闭窗口 Author: woniu201 Created: 2019/03/21 Return: ************************************/void TrayDialog::closeEvent(QCloseEvent *event){ this-hide(); event-ignore();}7.双击/单击托盘应用程序响应函数/************************************ Brief: 双击/单击托盘事件 Author: woniu201 Created: 2019/03/21 Return:************************************/int TrayDialog::OnSystemTrayClicked(QSystemTrayIcon::ActivationReason reason){ if (reason QSystemTrayIcon::Trigger || reason QSystemTrayIcon::DoubleClick) { // 显示主窗口 this-showNormal(); } return 0;}8.托盘右键退出响应函数/************************************ Brief: 托盘菜单退出 Author: woniu201 Created: 2019/03/21 Return: ************************************/int TrayDialog::OnExit(){ QApplication::exit(0); return 0;} 9.启动后效果如下