void initSysTrayIcon();//初始化任务栏图标 void onSysTrayIconActived(QSystemTrayIcon::ActivationReason reason); //被调用槽函数 void setTopWindow();//设置置顶显示
void MainWindow::initSysTrayIcon()
{
QSystemTrayIcon *sysTrayIcon = new QSystemTrayIcon(this);
sysTrayIcon->setIcon(QIcon(":/image/res/webcam_gear.ico"));//设置托盘图标的icon
sysTrayIcon->show();//展示系统托盘图片
QMenu *menuTray = new QMenu;
QAction *actQuit = new QAction(tr("退出"), menuTray);
menuTray->addAction(actQuit);
sysTrayIcon->setContextMenu(menuTray);
sysTrayIcon->setToolTip(tr("海康摄像头定时控制软件"));
sysTrayIcon->showMessage(tr("提示"), tr("海康摄像头定时控制软件V1.0"), QSystemTrayIcon::Information, 10000);
connect(sysTrayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
this, SLOT(onSysTrayIconActived(QSystemTrayIcon::ActivationReason)));
connect(actQuit, SIGNAL(triggered()), qApp, SLOT(quit()));
}
void MainWindow::onSysTrayIconActived(QSystemTrayIcon::ActivationReason reason)
{
switch(reason)
{
case QSystemTrayIcon::Trigger://单击
case QSystemTrayIcon::DoubleClick://双击
{
if (isHidden())
{
show();
}
else
{
setTopWindow();
}
break;
}
default:
break;
}
}
void MainWindow::setTopWindow()
{
Qt::WindowStates winStatus = Qt::WindowNoState;
if (windowState() & Qt::WindowMaximized)
{
winStatus = Qt::WindowMaximized;
}
setWindowState(Qt::WindowActive | winStatus);
activateWindow();
raise();
}
有不懂的代码自行查看文档,或直接复制函数百度,百度会给你最好的解释。。。