📅  最后修改于: 2023-12-03 15:36:33.343000             🧑  作者: Mango
PyQt5 是 Python 语言的一种 GUI 库,其封装了 Qt 库,用于创建跨平台的图形用户界面应用程序。而系统托盘是指在 Windows 系统任务栏(或 macOS 和 Linux 的系统菜单栏)中图标化显示的小应用程序。本文将介绍如何使用 PyQt5 来创建一个可以在系统托盘区域显示的小应用程序。
在 PyQt5 中,我们可以通过 QSystemTrayIcon
类来创建系统托盘应用程序的图标。其主要方法和属性如下:
show()
:显示系统托盘图标。hide()
:隐藏系统托盘图标。setIcon(icon)
:设置系统托盘图标。其中 icon
是 QIcon
类型的对象。setToolTip(toolTip)
:设置系统托盘图标的提示文本。activated.connect(callback)
:当系统托盘图标被点击、双击、划过等交互动作时,触发回调函数 callback
。下面是一个简单的使用 PyQt5 创建系统托盘应用程序的示例代码:
import sys
from PyQt5.QtWidgets import QApplication, QMenu, QSystemTrayIcon
from PyQt5.QtGui import QIcon
class SystemTrayIcon(QSystemTrayIcon):
def __init__(self, parent=None):
super(SystemTrayIcon, self).__init__(parent)
self.setToolTip('System Tray Icon Example')
self.setIcon(QIcon('icon.png'))
self.menu = QMenu()
self.quit_action = self.menu.addAction('Quit')
self.quit_action.triggered.connect(QApplication.quit)
self.setContextMenu(self.menu)
def activated_callback(self, reason):
if reason == self.Trigger:
print('System Tray Icon is clicked')
if __name__ == '__main__':
app = QApplication(sys.argv)
system_tray_icon = SystemTrayIcon()
system_tray_icon.show()
sys.exit(app.exec_())
在上面的示例代码中,我们继承了 QSystemTrayIcon
类,并重写了它的 __init__
方法,在其中设置了系统托盘图标的属性和菜单项。我们还定义了 activated_callback
方法,并在其内部判断了用户交互的方式,如果是点击事件,则输出一条信息。最后,我们创建了一个 QApplication
实例,并展示了 SystemTrayIcon
对象。
运行上面的示例代码,我们得到的运行效果如下所示:
我们可以看到,在 Windows 的任务栏中,出现了一个被设置了图标和提示文本的应用程序。同时,当我们点击任务栏中的图标时,会输出一条信息,表示成功地响应了用户的交互操作。
PyQt5 的 QSystemTrayIcon
类提供了一种快速创建系统托盘应用程序的方法。通过设置相应的属性和响应回调函数,我们可以构建出高效、易用、跨平台的小应用程序。