PyQt5 最小化到托盘,升级小闹钟...

Posted Python 集中营

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 知识分享的公众号,希望可以得到您的关注~

【往期精彩】

pyinstaller打包exe文件太大,利用pipenv轻松解决!

PyQt5 小工具:Excel数据分组汇总器...

异常:存储MYSQL转义数据保证数据存储的准确性...

做一个小闹钟,按规划做事...

使用pyqt5的日期控件做一个小日历方便查看...

欢迎关注作者公众号【Python 集中营】,专注于后端编程,每天更新技术干货,不定时分享各类资料!

以上是关于PyQt5 最小化到托盘,升级小闹钟...的主要内容,如果未能解决你的问题,请参考以下文章

做一个小闹钟,按规划做事...

最小化到系统托盘区是啥意思?

最小化到托盘程序是啥意思?通俗点哈

electron最小化到托盘video停止

我用C# 编写的winform 最小化到托盘了

vc 如何实现关闭时最小化到托盘