码迷,mamicode.com
首页 > 其他好文 > 详细

QT程序系统托盘

时间:2020-03-02 10:46:37      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:ble   右键菜单   exec   mat   最小   for   debug   ext   cas   

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

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

QT程序系统托盘

标签:ble   右键菜单   exec   mat   最小   for   debug   ext   cas   

原文地址:https://www.cnblogs.com/zswd-hwj/p/12394119.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!