QT - 系统托盘

在Qt中,要显示系统托盘菜单项,你可以使用QSystemTrayIcon类。以下是一个简单的示例,展示如何创建一个系统托盘图标并添加一些菜单项:

#include <QApplication> #include <QMenu> #include <QSystemTrayIcon>

int main(int argc, char *argv\[\]) { QApplication app(argc, argv);

复制代码
QSystemTrayIcon trayIcon;
trayIcon.setIcon(QIcon(":/icon.png")); // 设置托盘图标
 
QMenu trayMenu;
QAction *showAction = trayMenu.addAction("显示窗口");
QAction *quitAction = trayMenu.addAction("退出");
 
// 当用户点击"显示窗口"时,执行你想要的操作
QObject::connect(showAction, &QAction::triggered, [&app](){
    // 显示应用主窗口的代码
    app.showNormal();
});
 
// 当用户点击"退出"时,退出程序
QObject::connect(quitAction, &QAction::triggered, [&app](){
    app.quit();
});
​
//点击托盘图标时显示/隐藏主窗口
​
QObject::connect(&trayIcon,&QSystemTrayIcon::activated,[&w](QSystemTrayIcon::ActivationReason reason){
​
        //左键单击
        if(reason == QSystemTrayIcon::Trigger){
            if(w.isHidden()){
                w.show();
                w.activateWindow(); //激活窗口
            }else{
                w.hide();
            }
        }
​
});
复制代码
trayIcon.setContextMenu(&trayMenu); // 将菜单设置给系统托盘图标
trayIcon.show(); // 显示系统托盘图标
 
return app.exec();

}

在这个例子中,我们创建了一个QSystemTrayIcon和一个QMenu。然后,我们添加了两个QAction到菜单中,分别用于"显示窗口"和"退出"。通过信号和槽的连接,我们定义了当用户点击菜单项时应该执行的操作。最后,我们将菜单设置给系统托盘图标,并显示它。

请注意,你需要有一个图标资源,这里使用了:/icon.png,你应该替换为你自己的图标路径。这个例子假设你的应用程序已经有了一个事件循环,这通常是通过调用QApplication::exec()来实现的。

相关推荐
Pniubi2 小时前
HashMap的扩容和树化边界
java·开发语言
gCode Teacher 格码致知4 小时前
Pandas教学-17:Series与Dataframe的关系
开发语言·python·pandas
发量惊人的中年网工4 小时前
分公司访问总部ERP慢怎么办?SD-WAN组网的排查与验收要点
服务器·开发语言·php
下页、再停留4 小时前
【C#桌面客户端系列学习-15】生成可视化图表之折线图、柱状图、饼状图
开发语言·c#
ShineWinsu4 小时前
对于JavaScript:操作元素的解析
开发语言·前端·javascript·面试·web·dom·元素
zhanghaha13145 小时前
Qt 类本质就是 C++ 的类,只是 Qt 框架扩展了一套【QObject 对象模型】
qt
益莱储中国6 小时前
深度解析:RF 实验室从 5G迈向 6G 的过程中保持技术领先与设备升级的路径
开发语言·php
benchmark_cc7 小时前
Python 量化系统如何设计统一的数据访问接口:从策略解耦到数据层架构
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
const_qiu7 小时前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python
Wang's Blog7 小时前
Java 项目实战: 交友项目 - 个人资料管理的更新接口实现与坑
java·开发语言·交友