菜单总索引计数,菜单项长度

3 投票
2 回答
2613 浏览
提问于 2025-04-18 02:06

我创建了一个 Menu 菜单:

self.commandMenu = Menu(menubar, tearoff = 0)
self.commandMenu.add_command(label = "Rename", accelerator = "Ctrl+R", command = self.onRename, state = "disabled")
self.commandMenu.add_command(label = "Edit module name", command = self.onEditModuleName, state = "disabled")
self.commandMenu.add_command(label = "Create instance", command = self.onCreateInstance, state = "disabled")
self.commandMenu.add_command(label = "Delete instance", command = self.onDeleteInstance, state = "disabled")

我打算稍后再配置它的所有项目,但下面的代码一次只配置一个项目:

self.commandMenu.entryconfig(1, state = "normal")

有没有办法获取菜单项目的总数,或者一次性配置所有项目呢?

2 个回答

2

[更新Bryan Oakley的回答]

self.commandMenu.index("end") 这个写法是行不通的。
应该用 self.commandMenu.index(tk.END) 这个来替代。

[编辑] 要确保在菜单没有任何元素的时候捕捉到错误:index(tk.END) 会返回 None,这样就会出现错误 Cannot add int and NoneType.

7

你可以用 self.commandMenu.index("end") 来获取菜单中最后一个项目的索引。然后,你可以遍历这些项目,逐个进行配置:

last = self.commandMenu.index("end")
for i in range(last+1):
    self.commandMenu.entryconfigure(i, state="normal")

撰写回答