如何在pystray中创建菜单分隔符?实现遇阻求助
在pystray中正确创建菜单分隔符的方法
你遇到的问题根源在于:你手动创建的MenuItem("- - - -", None)和pystray内部定义的分隔符不是同一个对象实例,所以库不会将其识别为分隔符,而是当作普通文本菜单项处理。
查看Menu类源码就能发现,库已经预定义了一个专门的分隔符实例:
class Menu(object): #: A representation of a simple separator SEPARATOR = MenuItem('- - - -', None) # ...其他代码
正确的做法是直接使用这个预定义的SEPARATOR,而不是自己重新创建MenuItem。修改你的最小复现代码如下:
import pystray from PIL import Image def item1_action(icon, item): print("Item 1 clicked") def item2_action(icon, item): print("Item 2 clicked") def quit_action(icon, item): print("Quit clicked") item1 = pystray.MenuItem("Item 1", item1_action) item2 = pystray.MenuItem("Item 2", item2_action) # 直接使用库预定义的分隔符实例 sep = pystray.Menu.SEPARATOR quit_item = pystray.MenuItem("Quit", quit_action) menu = (item1, item2, sep, quit_item) image = Image.open('icon.png') icon = pystray.Icon("test", image, "test", menu) icon.run()
这样运行后,菜单中就会显示正常的分隔线,而不是文本为- - - -的菜单项。
内容的提问来源于stack exchange,提问作者aurorathorn
相关产品推荐
相关产品推荐

