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

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值