如何禁用 tkinter OptionMenu

How to disable a tkinter OptionMenu

我不知道或找不到如何禁用 tkinter OptionsMenu。我的 GUI 中有 3 个选项菜单,我想在单击按钮时禁用它们

self.menu = OptionMenu(self, var, *items)
btn = Button(self, text="disable", command = self.disable)
btn,pack()

self.disable(self):
    //Disable menu here...

有没有办法只调用 OptionMenu 的内置函数并将其禁用?还是我必须禁用菜单中的每个选项? (我也想不通)

顺便说一句:我将 menu.pack() 用于弹出的单独 Topleve() window,但我从主 Tk window 中的 grid() 系统开始, menu.grid(row=0,column=0)

使用

EDIT: So I forgot to mention that I have multiple OptionMenus being generated by a constructor method. This is what I tried doing and didn't work:

makeMenu():
    menu = OptionMenu(self, var, *items)
    ....//whole bunch of menu settings
    return menu

menu1 = makeMenu()
all_menus.append(menu)

现在这不起作用的原因是我必须在创建后附加它。我不知道为什么这些设置没有延续,但我必须做的是: 制作菜单(): 菜单 = OptionMenu(self, var, *items) ....//一大堆菜单设置 return 菜单

makeMenu():
    menu = OptionMenu(self, var, *items)
    ....//whole bunch of menu settings
    all_menus.append(menu)

makeMenu()

有了这个改变,我以后可以用它来禁用菜单:

for menu in all_menus:
   menu.config(state=DISABLED)

与任何其他小部件一样,您使用 configure 方法将状态设置为 "disabled":

self.menu.configure(state="disabled")

以上内容适用于 tkinter 和 ttk OptionMenu 小部件。