#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()
.