我创建了一个菜单(附加到菜单按钮),数据写入该菜单。该菜单的编码如下所示:
global kli
kli = Menubutton(text = "Selective undo", state = DISABLED)
kli.pack(side = "left")
kli.menu = Menu(kli, tearoff = 0)
kli["menu"] = kli.menu
global undo1
undo1 = kli.menu
kli.pack()
菜单被写入另一个函数,在其中写入,如下所示:
# 'po' is a Point class object and `selectundo` is another function to relevant to this question
undo1.add_command(label = po, command = lambda: selectundo(undo1.index(po)))
菜单和菜单按钮功能完美无缺。但是,我的问题是,因为我必须通过菜单编制索引(由于其他原因不相关),菜单必须的标签才是点对象,因为点对象包含我希望运行的功能。但是,因此,它看起来像这样:
我希望每个项目的标签与菜单功能中实际嵌入的标签不同。我能看到解决这个问题的唯一方法是 在每个项目的标签上添加另一个标签,因为它们已添加到菜单中。 是否可以?如果不是,是否还有其他方法可以在添加到菜单中的项目上显示与Menu
功能中嵌入的内容不同的标签?任何有关此问题的帮助非常感谢! :)
PS:我我使用turtle来代替我的程序,这个菜单必须是一个GUI,所以,如果我错了,请纠正我,但是我我认为我无法使用curses
模块来创建此菜单。
编辑:我想制作po包含的函数,我可以通过po.getfunction()接收函数,菜单中每个项目的标签,而点对象本身保留在"背景"不知何故,程序仍然可以基于po对象作为一个整体而不是在每个项目的标签上索引菜单。我希望这可以解决任何困惑。