QT添加到系统托盘

来源:互联网 发布:淘宝联盟2016旧版 编辑:程序博客网 时间:2024/06/13 01:41

有时需要将程序放在系统托盘,可以通过如下实现:

void Test::SetSystemTrayIcon()

{
    QIcon icon = QIcon(QPixmap(":/images/icon.png"));
    if (QSystemTrayIcon::isSystemTrayAvailable())
    {//判断系统是否支持系统托盘图标
        m_trayIcon.setIcon(icon);
        m_trayIcon.setToolTip("test");
        QMenu*  trayIconMenu = new QMenu;
        QAction* quitAction = new QAction(tr("退出 (&Q)"), this);
        trayIconMenu->addAction(quitAction);
        connect(quitAction, SIGNAL(triggered()), this, SLOT(Exit()));
        m_trayIcon.setContextMenu(trayIconMenu);
        m_trayIcon.show();
        connect(&m_trayIcon,
                SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
                this,SLOT(trayiconActivated(//点击托盘中的图标
                              QSystemTrayIcon::ActivationReason)));
    }
}

 
实现点击托盘中的图标

void Test::trayiconActivated(

        QSystemTrayIcon::ActivationReason reason)
{
    switch (reason)
    {
    case QSystemTrayIcon::Trigger:
        //单击托盘图标
    case QSystemTrayIcon::DoubleClick:
        //双击托盘图标
        this->setWindowState(Qt::WindowActive);
        this->show();
        break;
    default:
        break;
    }
}

原创粉丝点击