Menuウィジェットのチェックボタンの状態を取得しよう
前回はMenuウィジェットに設定された関数を呼び出しました。
今回はMenuウィジェットに設定されたチェックボタンの状態を取得してみましょう。
チェックボタンの状態を取得する
チェックボタンの状態を取得するために、add_checkbutton()メソッドのvariableオプションを使います。
variableオプションに設定するTkinter変数はオン/オフなので、BooleanVar() を使います。
Tkinter変数名 = tkinter.BooleanVar()
variable=Tkinter変数名
チェックボタンがチェックされているかどうかを取得するには、チェックボタンに設定したTkinter変数の get() メソッドを使います。
1(True)ならチェックあり、0(False)ならチェックなしです。
Tkinter変数名.get()
チェックボタンの状態を取得するプログラム
チェックボタンの状態を取得するプログラムは、以下のようになります。
チェックボタンは3つあるので、関連付けるTkinter変数を3つ用意して、それぞれのチェックボタンに割り当てます。
ラベルも3つ用意して、それぞれのチェックボタンの状態を表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
### インポート import tkinter ### チェック確認関数 def func(): if check1.get() == True: value1.set("チェックボタン1 チェック有") else: value1.set("チェックボタン1 チェック無") if check2.get() == True: value2.set("チェックボタン2 チェック有") else: value2.set("チェックボタン2 チェック無") if check3.get() == True: value3.set("チェックボタン3 チェック有") else: value3.set("チェックボタン3 チェック無") ### メイン画面作成 main = tkinter.Tk() ### チェック確認変数 check1 = tkinter.BooleanVar() check2 = tkinter.BooleanVar() check3 = tkinter.BooleanVar() ### 文字列設定変数 value1 = tkinter.StringVar() value2 = tkinter.StringVar() value3 = tkinter.StringVar() ### 画面サイズ設定 main.geometry("640x400") ### メニューバー作成 menubar = tkinter.Menu(master=main) ### 設定メニュー作成 setmenu = tkinter.Menu(master=menubar, tearoff=0) setmenu.add_checkbutton(label="チェックボタン1", variable=check1) setmenu.add_checkbutton(label="チェックボタン2", variable=check2) setmenu.add_checkbutton(label="チェックボタン3", variable=check3) setmenu.add_separator() setmenu.add_command(label="終了", command=main.quit) ### メニューバーに各メニューを設定 menubar.add_cascade(label="設定", menu=setmenu) ### メニューバー配置 main.config(menu=menubar) ### ボタン作成 button = tkinter.Button(master=main, text="Click", font=("HG丸ゴシックM-PRO",24), command=func) ### ラベル作成 label1 = tkinter.Label(master=main, textvariable=value1, font=("HG丸ゴシックM-PRO",24), fg="blue") label2 = tkinter.Label(master=main, textvariable=value2, font=("HG丸ゴシックM-PRO",24), fg="blue") label3 = tkinter.Label(master=main, textvariable=value3, font=("HG丸ゴシックM-PRO",24), fg="blue") ### ボタン配置 button.pack(pady=50) ### ラベル配置 label1.pack(pady=10) label2.pack(pady=10) label3.pack(pady=10) ### イベントループ main.mainloop() |
プログラムを実行すると、以下のような画面が表示されます。
チェックボタンをチェックすると「チェックボタンn チェック有」、チェックしていなければ「チェックボタンn チェック無」が表示されます。