C++Qt windows系统托盘增加图标和功能

简介: C++Qt windows系统托盘增加图标和功能

说明

windows系统托盘增加图标和功能

C++ Qt

代码

#include <QApplication>
#include <QSystemTrayIcon>
#include <QMenu>
#include <QMainWindow>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    // 创建主窗口
    QMainWindow mainWindow;
    mainWindow.setWindowTitle("My Application");
    mainWindow.resize(640, 480);
    // 创建系统托盘图标
    QSystemTrayIcon* trayIcon = new QSystemTrayIcon();
    trayIcon->setIcon(QIcon(":/icon.png")); // 设置图标
    trayIcon->setVisible(true);
    // 创建菜单
    QMenu* menu = new QMenu();
    QAction* showAction = new QAction("显示窗口", menu);
    QAction* hideAction = new QAction("隐藏窗口", menu);
    QAction* quitAction = new QAction("退出", menu);
    menu->addAction(showAction);
    menu->addAction(hideAction);
    menu->addSeparator();
    menu->addAction(quitAction);
    // 将菜单添加到系统托盘图标中
    trayIcon->setContextMenu(menu);
    // 监听系统托盘图标的activated信号
    QObject::connect(trayIcon, &QSystemTrayIcon::activated, [&mainWindow](QSystemTrayIcon::ActivationReason reason){
        if(reason == QSystemTrayIcon::Trigger){ // 判断是否是单击事件
            if(mainWindow.isHidden()){ // 如果主窗口是隐藏的,则显示它
                mainWindow.show();
            }else{ // 如果主窗口是显示的,则隐藏它
                mainWindow.hide();
            }
        }
    });
    // 监听菜单动作的triggered信号
    QObject::connect(showAction, &QAction::triggered, &mainWindow, &QMainWindow::show);
    QObject::connect(hideAction, &QAction::triggered, &mainWindow, &QMainWindow::hide);
    QObject::connect(quitAction, &QAction::triggered, &a, &QApplication::quit);
    return a.exec();
}

运行效果


推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:

零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)

https://xxetb.xet.tech/s/VsFMs

相关文章
|
20天前
如何隐藏windows10系统任务栏右下角的语言输入法图标?
如何隐藏windows10系统任务栏右下角的语言输入法图标?
|
26天前
|
开发框架 Linux C语言
C、C++、boost、Qt在嵌入式系统开发中的使用
C、C++、boost、Qt在嵌入式系统开发中的使用
32 1
|
1月前
|
开发框架 Java 编译器
【Qt 元对象系统 01 】深入探索Qt的元对象系统:核心地位、功能与构成
【Qt 元对象系统 01 】深入探索Qt的元对象系统:核心地位、功能与构成
52 0
|
1月前
|
存储 网络协议 C语言
【C/C++ 串口编程 】深入探讨C/C++与Qt串口编程中的粘包现象及其解决策略
【C/C++ 串口编程 】深入探讨C/C++与Qt串口编程中的粘包现象及其解决策略
83 0
|
17天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
40 6
|
1月前
|
安全 数据处理 C++
【Qt 底层之事件驱动系统】深入理解 Qt 事件机制:主事件循环与工作线程的交互探究,包括 QML 的视角
【Qt 底层之事件驱动系统】深入理解 Qt 事件机制:主事件循环与工作线程的交互探究,包括 QML 的视角
118 3
|
20天前
|
人工智能 机器人 C++
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
|
5天前
|
人工智能 安全 机器人
AI电销机器人系统源码部署:freeswitch安装Windows
在Windows上安装FreeSWITCH:访问官网下载安装程序,运行并按提示安装;选择安装路径和组件;等待安装完成;配置FreeSWITCH,修改设置;启动服务;测试其功能;如遇问题,参考官方文档或进行调试故障排除。记得定期更新维护以保证稳定安全。
|
9天前
|
网络协议 安全 测试技术
Windows安装禅道系统结合Cpolar实现公网访问内网BUG管理服务
Windows安装禅道系统结合Cpolar实现公网访问内网BUG管理服务
|
9天前
|
存储 安全 文件存储
Windows系统本地部署HFS并结合内网穿透实现公网访问本地存储文件
Windows系统本地部署HFS并结合内网穿透实现公网访问本地存储文件
Windows系统本地部署HFS并结合内网穿透实现公网访问本地存储文件

推荐镜像

更多