Python Code Notes

Information by python engineer

【tkinter】Checkbuttonの使い方【Python】

f:id:vigilantPotato:20210624002450p:plain
Checkbuttonは選択肢を表示してユーザーに選択してもらう際に使用するウィジェットで、on/offの設定や複数項目を選択する際に使用する。


【スポンサーリンク】


他ウィジェットの有効・無効を切り替え

以下、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ウィジェットはアクティブになり、クリックできる状態に戻る。

f:id:vigilantPotato:20210624002902p:plain
f:id:vigilantPotato:20210624002923p:plain

[↑ 目次へ]


【スポンサーリンク】


選択した項目を取得

複数の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が表示される。

f:id:vigilantPotato:20210624003016p:plain
f:id:vigilantPotato:20210624003036p:plain

[↑ 目次へ]


【スポンサーリンク】


オプション・メソッド

主なオプション・メソッド 動作
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() チェックを入れる

[↑ 目次へ]


【スポンサーリンク】