目录
创建菜单(QMenu)和菜单的项(QAction)
//初始化一个菜单和两个项目
QMenu* trayMenu = new QMenu(this);//菜单
QAction* showAction = new QAction(tr("显示"));//项1
QAction* exitAction = new QAction(tr("退出"));//项2
//菜单添加项
trayMenu->addAction(showAction);
trayMenu->addSeparator(); //菜单项添加分隔线
trayMenu->addAction(exitAction );
//项1的点击槽函数
connect(showAction, &QAction::triggered, this, [=]()
{
...
});
//项2的点击槽函数
connect(exitAction , &QAction::triggered, this, [=]()
{
...
});
创建系统托盘,并添加菜单
//创建一个系统托盘
QSystemTrayIcon* trayIcon = new QSystemTrayIcon(this);
trayIcon->setToolTip(tr("this is a test system tary icon.")); //设置鼠标移动到托盘图标显示的文本
trayIcon->setIcon(QIcon("C:\\Users\\test.ico")); //设置托盘图标
trayIcon->setContextMenu(trayMenu); //设置菜单
trayIcon->show();
/* 绑定系统托盘的激活操作信号槽连接。 */
connect(trayIcon , &QSystemTrayIcon::activated, [this](QSystemTrayIcon::ActivationReason reason)
{
switch (reason)
{
case QSystemTrayIcon::DoubleClick: /* 来自于双击激活。 */
case QSystemTrayIcon::Trigger: /* 来自于单击激活。 */
...
break;
}
});
托盘通知弹窗
//托盘通知弹窗
/*
* 参数1:标题;
* 参数2:通知消息;
* 参数3:通知消息的类型;
* 参数4:显示持续时长。
*/
trayIcon->showMessage(tr("title"), tr("msg"), QSystemTrayIcon::Information, 6000);