为什么 pystary 菜单会引发这么多错误?

问题描述

我想用 pystray 制作托盘图标。但是,它似乎不起作用。 我不会让这个问题太长,所以我会输入错误 here. 我正在使用的代码

...
import sys
import pystray
from pystray import Icon as icon,Menu as menu,MenuItem as item

from PIL import Image,ImageDraw
state = False
def quit(icon,item):
     sys.exit(1)
m=(item(
    "Wyjdź",quit))
icon = pystray.Icon('AutoThemeChanger',title='AutoThemeChanger działa w tle',menu=m)
width = 120
height = 120
color1 = 255
color2 = 255

# Generate an image
image = Image.open("tray.png")
icon.icon = image
icon.visible=True


...

有人可以帮我吗?

解决方法

当前对于菜单,您使用的是元组而不是导入的菜单对象。 您应该将整个元组作为这样的带有嵌套项的菜单对象,如果需要,也可以使用子菜单:

from pystray import Menu,MenuItem as Item

menu = (
Item('mainitem1',callable),Item('mainitem2',Item('mainitem3',Menu(Item('subitem1',Item('subitem2',callable))),Item('mainitem4',callable)
        )

还要注意的是,sys.exit() 在这种情况下不起作用,您需要使用 icon.stop()