Почему в pystary menu возникает так много ошибок?

#python #menu #pystray

#python #меню #pystray

Вопрос:

Я хочу сделать значок в трее pystray . Однако, похоже, это не работает. Я не хочу делать этот вопрос слишком длинным, поэтому я помещу здесь ошибку. Код, который я использую:

 ...
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


...
 

Кто-нибудь может мне помочь, пожалуйста?

Ответ №1:

В настоящее время для меню вы используете кортеж, а не импортированный объект menu. Вы должны сделать весь кортеж объектом меню, подобным этому, с вложенными элементами, а также можете использовать подменю, если хотите:

 from pystray import Menu, MenuItem as Item

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

также следует отметить, sys.exit() что в этом сценарии это не сработает, вам нужно использовать icon.stop() .