📅  最后修改于: 2023-12-03 15:04:00.964000             🧑  作者: Mango
在 PyQt5 中,我们可以使用 QSystemTrayIcon
类实现系统托盘功能。系统托盘可以用来实现在任务栏上显示一个图标,方便用户进行快捷操作。
使用 QSystemTrayIcon
类创建系统托盘,可以使用以下代码:
from PyQt5.QtWidgets import QApplication, QMenu, QSystemTrayIcon
from PyQt5.QtGui import QIcon
app = QApplication([])
tray = QSystemTrayIcon()
tray.setIcon(QIcon('icon.png'))
tray.setToolTip('This is an example')
tray.show()
app.exec_()
这里创建了一个 QSystemTrayIcon
实例,并设置了图标、提示等信息。最后调用 show()
方法显示系统托盘。
在系统托盘上右键点击通常会出现一个菜单,我们可以使用 QMenu
类添加一个菜单。
from PyQt5.QtWidgets import QApplication, QMenu, QSystemTrayIcon
from PyQt5.QtGui import QIcon
app = QApplication([])
tray = QSystemTrayIcon()
tray.setIcon(QIcon('icon.png'))
menu = QMenu()
open_action = menu.addAction("Open")
quit_action = menu.addAction("Quit")
tray.setContextMenu(menu)
tray.show()
app.exec_()
这里我们创建了一个名为 menu
的菜单,并添加了两个操作,分别是打开和退出。最后我们使用 setContextMenu()
方法将菜单设置到系统托盘上。
当用户点击菜单选项时,我们需要执行一些相关操作。这个可以通过连接信号和槽实现。
from PyQt5.QtWidgets import QApplication, QMenu, QSystemTrayIcon
from PyQt5.QtGui import QIcon
app = QApplication([])
tray = QSystemTrayIcon()
tray.setIcon(QIcon('icon.png'))
menu = QMenu()
open_action = menu.addAction("Open")
quit_action = menu.addAction("Quit")
tray.setContextMenu(menu)
def on_open():
print('Open clicked')
def on_quit():
print('Quit clicked')
app.quit()
open_action.triggered.connect(on_open)
quit_action.triggered.connect(on_quit)
tray.show()
app.exec_()
这里通过 triggered
信号连接了 on_open
和 on_quit
槽函数,分别在打开和退出操作被触发时执行相应的操作。
以上就是使用 PyQt5 实现系统托盘的基本介绍。在实际开发中,可能还需要处理一些其他相关事件和操作,这里只做了简单介绍,具体还需根据需求进行具体实现。