簡體   English   中英

如何禁用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()窗口,但是我從主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)

與任何其他小部件一樣,您可以使用configure方法將狀態設置為“禁用”:

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

上面的方法適用於OptionMenu和ttk OptionMenu小部件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM