天天看點

PyQt5 最小化到托盤,更新小鬧鐘...

PyQt5 最小化到托盤,更新小鬧鐘...

【閱讀全文】

将之前寫的小鬧鐘包裝一下,讓其最小化到托盤背景運作。鬧鐘本身是一個監聽程式,若是一直放在工作列不小心點掉了就很麻煩。

是以說明一下托盤的使用方法,這裡以之前的小鬧鐘案例為例,沒有的到我的公衆号内'PyQt5 UI'的菜單去檢視,或者号内直接回複‘小鬧鐘’擷取源碼即可。

需要擷取更新以後的源代碼在文末擷取下載下傳連結。

最小化到托盤,使用這個PyQt5子產品就夠用了。

from PyQt5.QtWidgets import *

           

首先不管其他的,先建立一個類實作托盤功能,最後将托盤功能融入到小鬧鐘的源代碼裡面應用就成了。

class TrayModel(QSystemTrayIcon):
    def __init__(self, Window):
        super(TrayModel, self).__init__()
        self.window = Window
        self.init_ui()

    def init_ui(self):
        # 初始化菜單
        self.menu = QMenu()

        self.manage_action = QAction('小鬧鐘設定', self, triggered=self.manage_clock)
        self.quit_action = QAction('退出應用', self, triggered=self.quit_clock)

        self.menu.addAction(self.manage_action)
        self.menu.addAction(self.quit_action)

        self.setContextMenu(self.menu)

        self.setIcon(QIcon('clock.ico'))
        self.icon = self.MessageIcon()

        self.activated.connect(self.app_click)

    def manage_clock(self):
        self.window.showNormal()
        self.window.activateWindow()

    def quit_clock(self):
        qApp.quit()

    def app_click(self, reason):
        pass
           

單擊滑鼠右鍵時會出現兩個菜單按鈕,分别是'小鬧鐘設定'、'退出應用'。隻有在托盤中選擇退出應用時,小鬧鐘程式才會真正的停止運作。

使用時在原有的小鬧鐘應用的init_ui()函數中調用一下TrayModel這個類就成了。

self.tray = TrayModel(self)

           

最後,為了使點選小鬧鐘應用的主視窗時防止應用退出需要重寫一下這個函數。

def closeEvent(self, a0: QCloseEvent) -> None:
    a0.ignore()
    self.hide()
    self.tray.show()
           

整合上面這些就完成了小鬧鐘的托盤化更新改造。

公衆号内回複"更新小鬧鐘"擷取更新以後的小鬧鐘直接運作就可以了。

我是 [Python 集中營]、很高興您看到了最後, 我是一個專注于 Python 知識分享的公衆号,希望可以得到您的關注~

PyQt5 最小化到托盤,更新小鬧鐘...

【往期精彩】

pyinstaller打包exe檔案太大,利用pipenv輕松解決!

PyQt5 小工具:Excel資料分組彙總器...

異常:存儲MYSQL轉義資料保證資料存儲的準确性...

做一個小鬧鐘,按規劃做事...

使用pyqt5的日期控件做一個小月曆友善檢視...

歡迎關注作者公衆号【Python 集中營】,專注于後端程式設計,每天更新技術幹貨,不定時分享各類資料!