unix 如何禁用tkinter OptionMenu

uxhixvfz  于 5个月前  发布在  Unix
关注(0)|答案(1)|浏览(54)

我不知道或找到如何禁用tkinter选项菜单。我有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()弹出窗口,但我在主Tk窗口中使用了grid()系统,menu.grid(row=0,column=0)使用了它

**编辑:**所以我忘了说我有多个OptionMenus是由一个构造函数方法生成的。这是我尝试做的,但没有工作:

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

menu1 = makeMenu()
all_menus.append(menu)


现在这不起作用的原因是因为我必须在创建后添加它。我不知道为什么设置不继续,但我必须这样做:makeMenu():menu = OptionMenu(self,var,*items)....//一大堆菜单设置返回菜单

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)

pbwdgjma

pbwdgjma1#

与其他小部件一样,您可以使用configure方法将状态设置为“disabled”:

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

字符串
上面的代码适用于tkinter和ttk OptionMenu小部件。

相关问题