使用的方法和步骤如下:
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()信号,由相应的槽函数进行处理