当前位置: 首页 > 网络知识

Qt 实现最小化窗口到托盘图标

时间:2026-01-25 16:16:45

前言:

使用QT开发桌面软件,将软件最小化至托盘这样的功能的是比较常见的,今天自己实现一下这个功能,并进行记录总结。

1.先看效果图

主要功能就是当软件开始运行,在系统托盘会自动出现一个关于本软件的系统托盘的图标,你右击这个图标,可以弹出一个菜单栏,这样的效果

2.大致思路以及实现流程
首先Qt本身就有一个系统托盘的类, QSystemTrayIcon类。

所以第一步:创建该类的对象,为该对象设置图标,然后show出来,托盘图标就能显示了。

第二步:要想右击的时候糖醋一个菜单栏,需要调用QSystemTrayIcon类的setContextMenu()函数,此时需要添加一个菜单栏就行了。

所以接下来看具体代码。

3.具体代码以及解释
需要加头文件

1 #include "qsystemtrayicon.h" 2 #include<qmenu.h>

.h文件中创建相应的对象:

1 QMenu* m_pTrayMennu; //系统托盘右键菜单项 2 QSystemTrayIcon* m_pSystemTray; //系统托盘图标 3 4 //右键菜单栏选项 5 QAction* m_pActionShow; 6 QAction* m_pActionHide; 7 QAction* m_pActionModel; 8 QAction* m_pActionSetting; 9 QAction* m_pActionQuit;

pp文件:

1 void CDesktopPet::CreatSystemTray() 2

这是全部代码,需要注意的是最后三句代码:

1. m_pSystemTray>setContextMenu(m_pTrayMennu);系统托盘类对象设置上下文菜单为(m_pTrayMennu);

2. m_pSystemTray>setIcon(QIcon(":/CDesktopPet/Resource/image/trayIcon.png"));系统托盘类对象对象设置图标,这个必须有,不设置图标是显示不出来的。

3. m_pSystemTray>show();显示系统托盘类对象。

在新建项目的界面类的构造函数里调用CreatSystemTray()函数,就可以了!

如果还想把任务栏的系统图标给隐藏掉,可以加上这句:

setWindowFlags(Qt::Tool);

4.总结

  该功能实现起来还是比较简单,其实还有很多后续工作需要继续完善,比如点击了退出菜单项,将程序退出;这个实现需要添加槽函数,来接受右键菜单项的信号,在相应的槽函数中直接调用退出函数QApplication::exit(0);即可,在此小小记录一下。



上一篇:Qt 串口调用的时候被拔出提示
下一篇:Qt 串口通信 QSerialPort
Qt
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素