
【スポンサーリンク】
他ウィジェットの有効・無効を切り替え
以下、Checkbuttonを用いて、チェックボックスのチェック有無でを入れるとボタンウィジェットを無効化/有効化を切り替える例を示す。
import tkinter #Checkbuttonクリック時に実行する関数 def change_button_state(): if var.get(): b["state"] = "disable" #ボタンを無効化 else: b["state"] = "active" #ボタンを有効化 root = tkinter.Tk() #Checkbuttonの状態取得用変数 var=tkinter.BooleanVar(root) #Checkbutton check = tkinter.Checkbutton( root, text="disable button", variable=var, #変数設定 command=change_button_state, #クリック時に実行する関数 ) check.pack() #Button b = tkinter.Button( root, text="button", ) b.pack() root.mainloop()
Checkbuttonのcommandオプションでクリックした際に実行する関数を設定している。チェックの有無はvariableオプションに設定した変数で判断し、Buttonウィジェットの状態を変化させている。
実行すると以下の様にCheckbuttonとButtonウィジェットが表示される。チェックを入れるとButtonウィジェットが無効化され、クリックできない状態に変化する。また、チェックを外すとButtonウィジェットはアクティブになり、クリックできる状態に戻る。


【スポンサーリンク】
選択した項目を取得
複数のCheckbuttonの中から、どの項目が選択されているかを表示する例を示す。
import tkinter #Checkbuttonクリック時に実行する関数 def show_selected(): label["text"] = var1.get() + var2.get() #変数の和をラベルに表示 root = tkinter.Tk() #Checkbuttonの状態取得用変数 var1=tkinter.IntVar(root) var2=tkinter.IntVar(root) #Checkbutton-1 check1 = tkinter.Checkbutton( root, text="question-1", onvalue=1, #variableの値を設定 variable=var1, command=show_selected, ) check1.pack() #Checkbutton-2 check2 = tkinter.Checkbutton( root, text="question-2", onvalue=2, variable=var2, #variableの値を設定 command=show_selected, ) check2.pack() #結果表示用ラベル label = tkinter.Label(root) label.pack() root.mainloop()
onvalueオプションを設定し、チェック時にvariableにセットされる値を変更することで、どの項目がチェックされているかを判定することができる。上記の例ではLabelには両方のvariableの和を表示しているため、上側のCheckbuttonにチェックが入ると1が、下側のCheckbuttonにチェックが入ると2が、両方にチェックが入ると3が表示される。


【スポンサーリンク】
オプション・メソッド
主なオプション・メソッド | 動作 | background(bg) | 背景色(green, black, yellow, cyan, magenta, red, blue, white等) |
---|---|
borderwidth(bd) | 境界幅 |
relief | 縁の3D表示設定(flat, raised, sunken, groove, ridge) |
text | ボックス横に表示するテキストを設定 |
command | クリック時に実行する関数を設定 |
onvalue/offvalue | チェック時/解除時のvariable値を設定 デフォルトで1と0 |
variable | 現在値を格納するための変数を設定 |
.deselect() | チェック解除 |
.select() | チェックを入れる |
【スポンサーリンク】