QT, 系统托盘 及 菜单

news/2024/10/19 5:27:48/

通过 QSystemTrayIcon 和 QMenu 可以实现pc应用的系统托盘及菜单:

QSystemTrayIcon::setContextMenu(QMenu*);

关键代码(截取项目中的代码)如下:

    //!系统托盘及菜单;m_sysTray = new QSystemTrayIcon(this);m_sysTray->setIcon(QIcon(GlobalSetting::Instance()->AppPath()+"/ico/DfaStudio/systemTrayIcon.png"));m_sysTray->setToolTip(Tr("MainWindow","Distributed Fiber Analyzer"));m_sysTray->show();QMenu* menu = new QMenu(this);QAction* showAction = new QAction(Tr("MainWindow","Show"),this);QAction* exitAction = new QAction(Tr("MainWindow","Exit"),this);menu->addAction(showAction);menu->addAction(exitAction);m_sysTray->setContextMenu(menu);//connect(showAction,&QAction::triggered,[this](){if(!this->isMaximized()){this->showMaximized();}else{this->showNormal();}});connect(exitAction,&QAction::triggered,[this](){if(this->dosomethingExiting()){qApp->quit();}});connect(m_sysTray,&QSystemTrayIcon::activated,[this](QSystemTrayIcon::ActivationReason reason){switch (reason) {
//        case QSystemTrayIcon::Trigger:
//        break;case QSystemTrayIcon::DoubleClick:if(!this->isMaximized()){this->showMaximized();}else{this->showNormal();}break;default:break;}});

这里添加了双击托盘图标放大/还原的功能,如上QSystemTrayIcon::activated() 信号; 

如何要使托盘图标是动态的,可以加一个QTimer定时器,通过 m_sysTray->setIcon()不断更换图标,如QQ的来消息时的闪动,可以轮替两张大小相同的图片,一张透明,一张高亮。这样就有一闪一闪的效果。当然还可以设置其它动画,操作方法都一样,这里就不多讲述。


http://www.ppmy.cn/news/1452613.html

相关文章

服务器硬件:裸金属安装 VMware ESXi

写在前面 工作中遇到,简单整理博文内容涉及 裸金属安装VMware ESXi 基本步骤理解不足小伙伴帮忙指正 不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。——村上春树 一、准备工作 确…

(12)配置Notch滤波器(一)

文章目录 前言 1 陷波滤波器设置概述 2 启用陷波滤波器 3 陷波滤波器控制类型 4 确定陷波滤波器的中心频率 5 滤除的谐波数量 6 检查陷波滤波器的有效性 7 双层/三层陷波 前言 ArduPilot 支持两个陷波滤波器,对于电机来说,其滤波频率可以与电机…

英语前缀汇总

目录 A a- (1)无、不、非 (2)在...,向... (3)加强意义 ab- 离去,相反,不 ac- 含有at,to(朝,向)之意,或表示加强意义…

PHP 反序列化

一、PHP 序列化 1、对象的序列化 <?php class people{public $nameGaming;private $NationLiyue;protected $Birthday12/22;public function say(){echo "老板你好呀&#xff0c;我是和记厅的镖师&#xff0c;叫我嘉明就行&#xff0c;要运货吗你&#xff1f;"…

MIKE + MATLAB - 使用DHI工具包时读取数据

这里写目录标题 1. 读取投影 1. 读取投影 dfsu2.Projection.WKTString dfsu2.Projectionans DfsProjection - 属性:Type: ProjectionWKTString: [11 System.String]Longitude: 123.0000Latitude: 0Orientation: 0dfsu2.Projection.WKTStringans PROJCS["CGCS2000_3_Degr…

【PyTorch与深度学习】5、深入剖析PyTorch DataLoader源码

课程地址 最近做实验发现自己还是基础框架上掌握得不好&#xff0c;于是开始重学一遍PyTorch框架&#xff0c;这个是课程笔记&#xff0c;此节课很详细&#xff0c;笔记记的比较粗 1. DataLoader 1.1 DataLoader类实现 1.1.1 构造函数__init__实现 构造函数有如下参数&…

FloodFill-----洪水灌溉算法(DFS例题详解)

目录 一.图像渲染&#xff1a; 代码详解&#xff1a; 二.岛屿数量&#xff1a; 代码详解&#xff1a; 三.岛屿的最大面积&#xff1a; 代码详解&#xff1a; 四.被围绕的区域&#xff1a; 代码详解&#xff1a; 五.太平洋大西洋水流问题&#xff1a; 代码详解&#x…

【Qt】深入Qt信号与槽:事件驱动编程的艺术与实践

文章目录 前言&#xff1a;1. Linux 信号 与 Qt 信号1.1. Linux 信号1.1.1. 概念1.1.2. 信号处理 1.2. Qt 信号1.2.2. 概念1.2.2. 信号处理方式1.2.3. 注意事项 2. connect 函数2.1. connect函数概述2.2. Qt类的继承关系2.3. connect具体使用方式&#xff1a; 3. 自定义槽函数3…