我正在尝试将额外的参数传递给由 pystray 菜单中的项目调用的函数。
import pystray
from pystray import MenuItem as item
from PIL import Image, ImageTk
def show_window(icon):
icon.notify('Hello World!', 'Hi')
def quit_window(icon, message):
print(message)
icon.stop()
icon = 'icon.ico'
image=Image.open(icon)
menu=pystray.Menu(item('Show', show_window, default=True), item('Quit', quit_window(icon, "Test")))
icon=pystray.Icon("name", image, "My System Tray Icon", menu)
icon.run()
在此示例中,当我在 pystray 菜单中按“退出”时,我试图传递参数“消息”调用函数“quit_window”。这里的问题是默认情况下菜单构造中使用的函数没有参数,并且在内部引用图标。当我使用参数时,构造函数不会将图标引用传递给调用 stop() 并且由于我在 pystray.Menu 之后创建 pystray.Icon 我不知道如何传递此信息并使其工作。