pyqt最小化托盤


方法來源,膜拜大佬
Python:PyQt 系統托盤_lianback的博客-CSDN博客
https://blog.csdn.net/lianback/article/details/79614771

第一步,添加不關閉代碼

添加一行代碼 app.setQuitOnLastWindowClosed(False) # 最小化托盤用 

 

 第二步,添加相關包

from PyQt5.QtWidgets import QSystemTrayIcon, QAction
from PyQt5.QtWidgets import QMenu
from PyQt5.QtGui import QIcon

第三步,添加最小化托盤的代碼

1.代碼位置

 

 2.代碼內容

    # -------------------- 托盤開始 ----------
    # 在系統托盤處顯示圖標
    w=main_form
    tp = QSystemTrayIcon(w)
    tp.setIcon(QIcon('D:/圖片/劉亦菲/liuyuifeipic.jpg'))
    # 設置系統托盤圖標的菜單
    a1 = QAction('&顯示(Show)', triggered=w.show)
    def quitApp():
        w.show()  # w.hide() #隱藏
        re = QMessageBox.question(w, "提示", "退出系統", QMessageBox.Yes |
                                  QMessageBox.No, QMessageBox.No)
        if re == QMessageBox.Yes:
            # 關閉窗體程序
            QCoreApplication.instance().quit()
            # 在應用程序全部關閉后,TrayIcon其實還不會自動消失,
            # 直到你的鼠標移動到上面去后,才會消失,
            # 這是個問題,(如同你terminate一些帶TrayIcon的應用程序時出現的狀況),
            # 這種問題的解決我是通過在程序退出前將其setVisible(False)來完成的。
            tp.setVisible(False)
    a2 = QAction('&退出(Exit)', triggered=quitApp)  # 直接退出可以用qApp.quit
    tpMenu = QMenu()
    tpMenu.addAction(a1)
    tpMenu.addAction(a2)
    tp.setContextMenu(tpMenu)
    # 不調用show不會顯示系統托盤
    tp.show()
    # 信息提示
    # 參數1:標題
    # 參數2:內容
    # 參數3:圖標(0沒有圖標 1信息圖標 2警告圖標 3錯誤圖標),0還是有一個小圖標
    tp.showMessage('tp', 'tpContent', icon=0)
    def message():
        print("彈出的信息被點擊了")
    tp.messageClicked.connect(message)
    def act(reason):
        # 鼠標點擊icon傳遞的信號會帶有一個整形的值,1是表示單擊右鍵,2是雙擊,3是單擊左鍵,4是用鼠標中鍵點擊
        if reason == 2 or reason == 3:
            w.show()
        # print("系統托盤的圖標被點擊了")
    tp.activated.connect(act)
    # -------------------- 托盤結束 ----------

 


免責聲明!

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



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