我正在尝试创建一个 pystray 菜单分隔符,但我很难做到这一点。我在这里和手册上进行了搜索https://buildmedia.readthedocs.org/media/pdf/pystray/stable/pystray.pdf我发现它非常令人困惑和无益,我什至尝试阅读“菜单”类:
类菜单(对象): “”“菜单的描述。
菜单描述是不可变的。
它是使用一系列 :class:Menu.Item 实例或单个实例创建的 可调用,它必须返回菜单项的生成器。
首先,从列表中删除不可见的菜单项,然后删除任何实例 出现在项目列表的头部或尾部的 :attr:SEPARATOR 是 删除,并且任何连续的分隔符都减少为一个。 ”“”
简单分隔符的表示 SEPARATOR = MenuItem('- - - -', 无)
def init(自我,*项目): self._items = 元组(items)
我在其中找到了我这样使用的代表:
sep = pystray.MenuItem("- - - -", None)
但它没有创建任何分隔符,它创建了一个带有以下文本的菜单项:
- - - -
我想要一个真正的分隔符,它是一条具有禁用效果的线。
这是一个最小的代码示例:
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.MenuItem("- - - -", None)
quit_item = pystray.MenuItem("Quit", quit_action)
menu = (item1, item2,s, quit_item)
image = Image.open('icon.png')
icon = pystray.Icon("test", image, "test", menu)
icon.run()
谢谢你。
您已正确识别指示使用分隔符的点。但是,您应该专门使用
SEPARATOR
属性而不是其分配的值,因为有人可能实际上想要创建一个带有四个连字符的菜单项,而 pystray 自动将其转换为分隔符是不合适的会的。
话虽这么说,你需要更换这个:
sep = pystray.MenuItem("- - - -", None)
这样:
sep = pystray.Menu.SEPARATOR