Qt 添加系统托盘

本文介绍了如何在Qt中添加系统托盘图标,包括设置QSystemTrayIcon和QMenu,以及处理图标激活时的信号,如单击和双击事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用的方法和步骤如下:

      1、#include <QSystemTrayIcon>如果需要系统托盘图标的菜单,则还需要#include <QMenu>;

      2、声明对象QSystemTrayIcon *tray和QMenu *trayMenu;

      3、接下来可以对tay进行一些初始化的工作。

          tray->setToolTip(...);//设置tooltip

          tray->setIcon(QIcon("..."));//设置显示的图标,这里QIcon类不需要单独声明

          tray->show();//在系统托盘显示图标,可以更具需要在适当时候显示图标
void TrayIcon::createTray(QWidget * widget)
{
    QSystemTrayIcon *trayIcon = new QSystemTrayIcon(widget);
    QMenu *trayIconMenu = new QMenu(widget);
    //添加托盘菜单项
    QAction *online = new QAction(QObject::tr("在线"), trayIconMenu);
    trayIconMenu->addAction(online); //在线
    QAction *busy = new QAction(QObject::tr("忙碌"), trayIconMenu);
    trayIconMenu->addAction(busy); //忙碌
    QAction *away = new QAction(QObject::tr("离开"), trayIconMenu);
    trayIconMenu->addAction(away); //离开
    QAction *Invisiable = new QAction(QObject::tr("隐身"), trayIconMenu);
    trayIconMenu->addAction(Invisiable); //隐身
    trayIconMenu->addSeparator();
    QAction *logout = new QAction(QObject::tr("注销"), trayIconMenu);
    trayIconMenu->addAction(logout); //注销
    QAction *quit = new QAction(QObject::tr("退出"), trayIconMenu);
    trayIconMenu->addAction(quit); //退出
    trayIcon->setContextMenu(trayIconMenu); //把菜单加入托盘
    trayIcon->setToolTip("TOOLS_TOOLTIP"); //这个是说明消息
    QIcon trayIconPic(QPixmap(":/res/qq.ico"));
    trayIcon->setIcon(trayIconPic); //为托盘加上图片
    trayIcon->show(); //显示托盘图标
}

    在系统托盘图标中,当图标activated(激活)时应该做好相应的处理,它会触发 QSystemTrayIcon::ActivationReason信号,

    信号可能是单击(触发(Trigger))、  双击(DoubleClick)时应该用switch来接收处理。

    点击右键菜单选择菜单项,触发trigger()信号,由相应的槽函数进行处理  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值