使用tkinter,是否可以在菜单对象的标签上添加标签?

2024-10-01 02:33:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经创建了一个菜单(附在菜单按钮上),数据将被写入其中。此菜单的编码如下所示:

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)))

菜单和菜单按钮功能完美。但是,我的问题是,由于我必须索引菜单(由于其他不相关的原因),菜单的标签必须是点对象,因为点对象包含我要运行的函数。但是,正因为如此,它看起来是这样的:

Tkinter Menu

我希望每个项目的标签是什么,实际上是嵌入在菜单功能不同。解决这个问题的唯一方法是在菜单中添加每个项目时,在每个项目的标签上加上另一个标签。有可能吗?如果不是,是否有其他方法在添加到菜单的项目上显示与嵌入Menu函数中的标签不同的标签?在此问题上的任何帮助都是非常感谢的!:)

p.S.:我正在为我的程序使用turtle to,而这个菜单必须是一个GUI,因此,如果我错了,请纠正我,但我不认为我能够使用curses模块来创建这个菜单。

编辑:我想制作采购订单包含的功能,我可以通过采购订单获取功能(),菜单中每个项目的标签,而point对象本身以某种方式保留在“背景”中,因此程序仍然可以基于整个po对象(而不是每个项目的标签)索引菜单。我希望这能消除任何混乱。你知道吗


Tags: to项目对象函数功能菜单标签按钮