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
    评论
Qt是一个跨平台的C++图形用户界面应用程序开发框架。定制个性化系统托盘菜单需要使用Qt的相关类和方法来实现。 首先,需要创建一个QSystemTrayIcon对象,用于在系统托盘中显示图标和相关菜单。可以通过设置图标、提示信息等属性来定制托盘图标的外观。例如,可以使用setIcon()函数设置托盘图标,setToolTip()函数设置提示信息。 其次,为了实现托盘菜单,需要使用QMenu和QAction类。可以使用addAction()函数向菜单中添加动作(QAction),例如打开某个功能窗口、显示关于界面或退出程序。可以使用addSeparator()函数在菜单中插入分隔符。可以使用setEnabled()函数设置动作的启用状态。 此外,还可以使用addMenu()函数在菜单中添加子菜单。子菜单可以通过添加动作的方式来进一步定制菜单内容。例如,可以创建一个子菜单,用于显示不同的主题选择。 当用户点击菜单项时,可以连接对应的槽函数来执行相应的操作。例如,可以使用connect()函数将菜单项的triggered()信号与对应的槽函数连接起来。 最后,调用show()函数显示托盘菜单,然后通过exec()函数进入主事件循环,等待用户操作。 总之,通过使用Qt的相关类和方法,可以方便地定制个性化系统托盘菜单。仿照360安全卫士的托盘菜单,只需要根据具体需求创建对应的菜单项和子菜单即可。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值