如何在pystray中创建菜单分隔符

问题描述 投票:0回答:1

我正在尝试创建一个 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()

谢谢你。

python python-3.x menu separator pystray
1个回答
0
投票

您已正确识别指示使用分隔符的点。但是,您应该专门使用

SEPARATOR
属性而不是其分配的值,因为有人可能实际上想要创建一个带有四个连字符的菜单项,而 pystray 自动将其转换为分隔符是不合适的会的。

话虽这么说,你需要更换这个:

sep = pystray.MenuItem("- - - -", None)

这样:

sep = pystray.Menu.SEPARATOR
© www.soinside.com 2019 - 2024. All rights reserved.