QT程序系统托盘
Posted zswd-hwj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT程序系统托盘相关的知识,希望对你有一定的参考价值。
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程序系统托盘的主要内容,如果未能解决你的问题,请参考以下文章