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();
}


运行效果

增加系统托盘右键menu


推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/VsFMs

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值