📜  pyqt5 你可以用系统托盘做的事情 python (1)

📅  最后修改于: 2023-12-03 15:04:00.964000             🧑  作者: Mango

使用 PyQt5 实现系统托盘

在 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_openon_quit 槽函数,分别在打开和退出操作被触发时执行相应的操作。

以上就是使用 PyQt5 实现系统托盘的基本介绍。在实际开发中,可能还需要处理一些其他相关事件和操作,这里只做了简单介绍,具体还需根据需求进行具体实现。