QT 最小化到托盤


1.添加頭文件和成員變量

mainWindow.h

#include <QSystemTrayIcon>  //t托盤類
#include <QDesktopServices> //桌面事件類
#include <QAction>
#include <QMenu>

private:
    QMenu *trayMenu;//托盤菜單
    QSystemTrayIcon *tray;//托盤圖標添加成員
    QAction *restoreAction;//托盤圖標右鍵點擊時彈出選項
    QAction *quitAction;//托盤圖標右鍵點擊時彈出選項

2.初始化成員變量

mainWindow.cpp

    //***托盤***
    tray= new QSystemTrayIcon(this);//初始化托盤對象tray
    tray->setIcon(QIcon(QPixmap(":/icon/appIcon.png")));//設定托盤圖標,引號內是自定義的png圖片路徑
    tray->setToolTip("進程計時器"); //提示文字
    QString title="APP Message";
    QString text="進程計時器";
    tray->show();//讓托盤圖標顯示在系統托盤上
    tray->showMessage(title,text,QSystemTrayIcon::Information,3000); //最后一個參數為提示時長,默認10000,即10s

    restoreAction = new QAction("打開", this);
    connect(restoreAction, SIGNAL(triggered()), this, SLOT(show()));
    quitAction = new QAction("退出", this);
    connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));

    trayMenu = new QMenu(this);
    trayMenu->addAction(restoreAction);
    trayMenu->addSeparator();
    trayMenu->addAction(quitAction);
    tray->setContextMenu(trayMenu);

托盤圖標右鍵點擊菜單對應的槽函數可以根據自己的需求去寫。

3.添加雙擊托盤圖標打開窗口功能

3.1 添加槽函數

void Widget::showWidget(QSystemTrayIcon::ActivationReason reason)
{
    switch(reason)
    {
    case QSystemTrayIcon::Trigger://單擊托盤圖標
        break;
    case QSystemTrayIcon::DoubleClick://雙擊托盤圖標
        this->showNormal();
        break;
    default:
        break;
    }
}

3.2 連接信號和槽

connect(tray,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(showWidget(QSystemTrayIcon::ActivationReason reason)));

之后就可以雙擊托盤圖標打開隱藏的窗口了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM