我有一个类似下面的tkinter菜单,其中root是我的主Tk窗口,f1,f2,g1,g2是回调函数:
menubar = Menu(root)
menu1 = Menu(menubar, tearoff=0)
menu1.add_command(label="I do this", command=_f1)
menu1.entryconfig('I do this',state='disabled')
menu1.add_command(label="I do that", command=_f2)
menu1.entryconfig('I do that',state='disabled')
menubar.add_cascade(label='My to do list',menu=menu1)
menu2 = Menu(menubar, tearoff=0)
menu2.add_command(label="You do this", command=_g1)
menu2.entryconfig('You do this',state='disabled')
menu2.add_command(label="You do that", command=_g2)
menu2.entryconfig('You do that',state='disabled')
menubar.add_cascade(label='Your to do list',menu=menu2)
root.config(menu=menubar)所以有两个下拉菜单,menu1和menu2,每个都有两个选项。目前,这四个选项处于禁用状态。
将所有四个选项都设置为“normal”的最有效方法是什么?我知道如何使用简单的列表理解来为每个下拉菜单做这件事,但是有没有一种方法可以一下子做完呢?
发布于 2021-08-17 22:36:23
无法一次配置多个菜单项。entryconfigure方法一次只能配置一件事。
也就是说,有一些方法可以遍历菜单中的所有项目。例如,以下是在两个菜单中启用所有项目的简明解决方案:
for menu in (menu1, menu2):
for index in range(menu.index('end')+1):
menu.entryconfigure(index, state="normal")发布于 2021-08-17 22:26:08
我不认为有办法。看起来你最好的办法就是一个接一个地做。如果你喜欢的话,可以遍历它们--这样可以节省一些输入时间。
https://stackoverflow.com/questions/68824267
复制相似问题