2016-04-28 151 views
2

有沒有辦法保持tkinter菜單打開時點擊檢查按鈕? 在示例程序中,當您單擊菜單項時,菜單列表將消失,因此您需要再次打開菜單以單擊下一個項目。 那麼有沒有一種方法可以讓菜單保持運行狀態,因此可以點擊多個複選框?tkinter菜單checkbutton - 防止菜單關閉

from Tkinter import * 

def click(): 
    pass 

root = Tk() 
menu = Menu(root) 
root.config(menu=menu) 
choicesmenu = Menu(menu,tearoff=0) 

menu.add_cascade(label="Choices", menu=choicesmenu) 
choicesmenu.add_checkbutton(label="choice1", command=click) 
choicesmenu.add_checkbutton(label="choice2", command=click) 
choicesmenu.add_checkbutton(label="choice3", command=click) 
choicesmenu.add_checkbutton(label="choice4", command=click) 
choicesmenu.add_checkbutton(label="choice5", command=click) 
choicesmenu.add_checkbutton(label="choice6", command=click) 
choicesmenu.add_checkbutton(label="choice7", command=click) 

mainloop() 
+0

這是什麼'tearoff'選項啓用 - 雖然它的醜陋和不熟悉的人,這些天。如果您爲Choices菜單設置了「tearoff」,則用戶可以將菜單撕下到臨時對話框中,然後單擊複選框不再關閉菜單的對話框版本。但是,重新設計使用適當的對話可能更明智。 – patthoyts

回答

1

我勸你不要做你在找什麼,因爲你正在尋找擾亂正常行爲,菜單是爲了滿足。看看你的瀏覽器的菜單行爲,你會發現它不是以你想要的方式行事。幸運的是,這是事實,否則如果你的行爲已經實現了,我們需要在菜單中選擇一些東西來進行額外的點擊,以便稍後隱藏。

此外,你完全打破了我建議你閱讀的Principles of User Interface Design

你會告訴我你的應用程序需要這種行爲;對於這個問題,我的回答是,再一次,針對:如果您的應用程序需要這種行爲,那麼您的設計是錯誤的,我鼓勵在設計任何程序之前重新考慮您的設計兩次。

爲了您的單純的好奇心,然而,你可以看看:Keep a menu open in Tkinter