Qt设置任务栏图标

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

有不懂的代码自行查看文档,或直接复制函数百度,百度会给你最好的解释。。。

你可能感兴趣的:(Qt)