菜单总索引计数,菜单项长度
我创建了一个 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")