2016-04-28 6 views
2

チェックボタンをクリックするとtkinterメニューを開いたままにする方法はありますか? サンプルプログラムでメニュー項目をクリックするとメニューリストが消えますので、次の項目をクリックするためにメニューを再度開く必要があります。 複数のチェックボックスをクリックできるように、メニューを非表示にする方法はありますか?tkinterメニューチェックボタン - メニューを閉じるのを防ぐ

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'をtrueに設定した場合、ユーザはメニューを一時的なダイアログに移して、チェックボックスをクリックすることでメニューのこのダイアログバージョンを閉じることができなくなります。しかし、適切なダイアログを使用するように再設計することはおそらくより賢明です。 – patthoyts

答えて

1

あなたがに見ているので、私はあなたが探しているものを行うことができない助言は、メニューを満たすために意図されているの正常な動作を妨害します。あなたのブラウザのメニュー動作を見て、それがあなたがそれをやりたいように振舞っていないことがわかります。そして幸運なことに、これは事実です。そうでない場合は、動作が実装されている場合は、メニューから何かを選択したときに追加のクリックを行う必要があります。

これに加えて、私があなたにお伝えすることを助言するPrinciples of User Interface Designを完全に破っています。

あなたのアプリケーションには、とにかくその動作が必要であると言われたでしょう。私の答えは、もう一度、あなたのアプリケーションにその動作が必要な場合は、設計が間違っています。何かをプログラミングしようとする前に、デザインを2度再考することをお勧めします。

あなたの単なる好奇心のために、しかし、あなたが見てみることがあります。Keep a menu open in Tkinter

関連する問題