QT程序系统托盘

二次信任 提交于 2020-03-02 10:52:34

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();

注:将当前界面隐藏,显示系统托盘对象。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!