要实现酷狗那种单击关闭按钮,直接转换成托盘图标,然后点击托盘图标又可以恢复。
首先关闭按钮实现托盘图标不难。
声明一个托盘图标类:
QSystemTrayIcon *trayIcon;
trayIcon=new QSystemTrayIcon;
然后添加相应的图标和提示信息:
this->hide();//这里是隐藏主窗口
trayIcon->setIcon(QIcon(":/new/prefix1/image/tray.jpg"));
trayIcon->show();
trayIcon->setToolTip("托盘图标");
trayIcon->showMessage("主人","我在这里哦",QSystemTrayIcon::Information,5000);
接下来要实现双击托盘图标显示窗口:
需要监测QSystemTrayIcon::ActivationReason
我们新建一个槽来实现:
void player::tuopan(QSystemTrayIcon::ActivationReason reason)
{
switch(reason) {
case QSystemTrayIcon::DoubleClick:
this->showNormal();
break;
default:
break;
}
}
当然有必要将双击事件和槽相连接: connect ( trayIcon , SIGNAL (activated ( QSystemTrayIcon :: ActivationReason )), this ,
SLOT(tuopan(QSystemTrayIcon::ActivationReason)));//将托盘图标和双击事件关联
简单的函数和代码,就可以实现酷狗的效果了。
原文地址:https://my.oschina.net/u/2505464/blog/542389