QT托盘用到的类为:QSystemTrayIcon
一、托盘对象创建
1 //最小化到系统托盘的类
2 my_system_tray = new QSystemTrayIcon(this);
3 //设置显示图标
4 QIcon ico(":/1.png");
5 my_system_tray->setIcon(ico);
6 //设置显示文字
7 my_system_tray->setToolTip("剑来");
8 //链接最小化托盘类的点击事件信号
9 connect(my_system_tray, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
10 this, SLOT(my_activated(QSystemTrayIcon::ActivationReason)));
注意:一定要设置图标,不然在系统托盘那里看不到。二、事件响应
1 //最小化托盘后的操作信号槽函数
2 void MainWindow::my_activated(QSystemTrayIcon::ActivationReason reason)
3 {
4 switch (reason)
5 {
6 //双击
7 case QSystemTrayIcon::DoubleClick:
8 {
9 //显示主界面,隐藏托盘
10 my_system_tray->hide();
11 this->show();
12 }break;
13
14 //右键
15 case QSystemTrayIcon::Context:
16 {
17 QMenu *menu = new QMenu(this);
18 menu->addAction(tr("先"), this, SLOT(prevFunction()));
19 menu->addAction(tr("后"), this, SLOT(nextFunction()));
20 //QCursor::pos()确保右键菜单在当前鼠标坐标出现
21 menu->exec(QCursor::pos());
22 delete menu;
23 }break;
24
25 //单击
26 case QSystemTrayIcon::Trigger:
27 {
28 qDebug() << this->winId();
29 my_system_tray->showMessage("剑来", "1", QSystemTrayIcon::Information, 50);
30 qDebug() << "end";
31 }break;
32
33 default:
34 {
35
36 }break;
37 }
38 }
三、系统托盘显示
1 this->hide(); 2 my_system_tray->show();
注:将当前界面隐藏,显示系统托盘对象。
来源:https://www.cnblogs.com/zswd-hwj/p/12394119.html