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

相关文章
|
1月前
|
安全 Windows
永久关闭 Windows 11 系统更新
永久关闭 Windows 11 系统更新
118 0
|
15天前
|
存储 负载均衡 Java
如何配置Windows主机MPIO多路径访问存储系统
Windows主机多路径(MPIO)是一种技术,用于在客户端计算机上配置多个路径到存储设备,以提高数据访问的可靠性和性能。本文以Windows2012 R2版本为例介绍如何在客户端主机和存储系统配置多路径访问。
57 13
如何配置Windows主机MPIO多路径访问存储系统
|
5天前
|
Windows Python
如何反向读取Windows系统日志EVTX文件?
以下是如何反向读取Windows系统日志EVTX文件
15 2
|
30天前
|
Windows
.NET 隐藏/自定义windows系统光标
【10月更文挑战第20天】在.NET中,可以使用`Cursor`类来控制光标。要隐藏光标,可将光标设置为`Cursors.None`。此外,还可以通过从文件或资源加载自定义光标来更改光标的样式。例如,在表单加载时设置`this.Cursor = Cursors.None`隐藏光标,或使用`Cursor.FromFile`方法加载自定义光标文件,也可以将光标文件添加到项目资源中并通过资源管理器加载。这些方法适用于整个表单或特定控件。
|
30天前
|
Apache 数据中心 Windows
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
|
30天前
|
域名解析 缓存 网络协议
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
|
1月前
|
Windows
安装Windows XP系统
安装Windows XP系统
|
1月前
|
安全 Windows
windows系统中,通过LOAD到入csv格式的文件到neo4j中,如何写文件路径
windows系统中,通过LOAD到入csv格式的文件到neo4j中,如何写文件路径
36 0
|
1月前
|
关系型数据库 MySQL Linux
Navicat 连接 Windows、Linux系统下的MySQL 各种错误,修改密码。
使用Navicat连接Windows和Linux系统下的MySQL时可能遇到的四种错误及其解决方法,包括错误代码2003、1045和2013,以及如何修改MySQL密码。
196 0
|
1月前
|
安全 Windows
Windows系统实现exe服务注册的方法都有哪些?
【10月更文挑战第5天】Windows系统实现exe服务注册的方法都有哪些?
274 0