首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一次将多个tkinter菜单项设置为“正常”最有效的方法是什么?

一次将多个tkinter菜单项设置为“正常”最有效的方法是什么?
EN

Stack Overflow用户
提问于 2021-08-17 21:31:52
回答 2查看 31关注 0票数 0

我有一个类似下面的tkinter菜单,其中root是我的主Tk窗口,f1,f2,g1,g2是回调函数:

代码语言:javascript
运行
复制
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)

所以有两个下拉菜单,menu1menu2,每个都有两个选项。目前,这四个选项处于禁用状态。

将所有四个选项都设置为“normal”的最有效方法是什么?我知道如何使用简单的列表理解来为每个下拉菜单做这件事,但是有没有一种方法可以一下子做完呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-17 22:36:23

无法一次配置多个菜单项。entryconfigure方法一次只能配置一件事。

也就是说,有一些方法可以遍历菜单中的所有项目。例如,以下是在两个菜单中启用所有项目的简明解决方案:

代码语言:javascript
运行
复制
for menu in (menu1, menu2):
    for index in range(menu.index('end')+1):
        menu.entryconfigure(index, state="normal")
票数 1
EN

Stack Overflow用户

发布于 2021-08-17 22:26:08

我不认为有办法。看起来你最好的办法就是一个接一个地做。如果你喜欢的话,可以遍历它们--这样可以节省一些输入时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68824267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档