【Python/tkinter】Checkbutton(チェックボックス)

チェックボタン(チェックボックス)はCheckbuttonクラスによって作成します。

以下にサンプルを示します。

import tkinter as tk

class Application(tk.Frame):
    def __init__(self, master = None):
        super().__init__(master)

        self.master.title("チェックボックスの作成")       # ウィンドウタイトル
        self.master.geometry("300x100")                 # ウィンドウサイズ(幅x高さ)

        # チェックボックスの値
        self.check_value = tk.BooleanVar(value = True)  # 初期値を設定する場合
        #self.check_value = tk.BooleanVar()             # 初期値を設定しないとFlaseになる
        # チェックボックスの作成
        self.check = tk.Checkbutton(self.master, 
                           text = "チェックボックス",    # チェックボックスの表示名
                           command = self.check_click,  # クリックされたときに呼ばれるメソッド
                           variable = self.check_value  # チェックの状態を設定する
                           )

        # ボタンの作成
        button = tk.Button(self.master, 
                           text = "チェックを逆にする",  # ボタンの表示名
                           command = self.button_click  # クリックされたときに呼ばれるメソッド
                           )
        # 配置
        self.check.pack()
        button.pack()

    def check_click(self):
        # チェックの状態を取得(チェックされているときはTrue)
        value = self.check_value.get()
        print(f"チェックの状態は {value} です")

    def button_click(self):
        # チェックの状態を取得し逆に設定する
        value = self.check_value.get()
        self.check_value.set(not value)
        #以下のようにしても同じ
        #self.check.toggle()


if __name__ == "__main__":
    root = tk.Tk()
    app = Application(master = root)
    app.mainloop()

(実行結果)

ポイント

  • チェックボタンの値(チェックされている(True)/されていない(False))はBooleanVarクラスオブジェクトをCheckbuttonクラスのvariableオプションに設定する
  • チェックの状態の取得は BooleanVarクラスオブジェクト.get() で行う
  • チェックの状態の設定は BooleanVarクラスオブジェクト.set() の引数にTrue もしくは False を渡す

オプション

オプション名 説明
activebackground クリックされたときの背景色を指定します。
activeforeground クリックされたときの文字色(チェックマークを含む)を指定します。
anchor 文字の配置位置を指定します。
【設定値】tk.N, tk.S, tk.W, tk.E, tk.NW, tk.NE, tk.SW, tk.SE, tk.CENTER
【初期値】tk.CENTER
※width, heightを指定し、余白が生じている際に有効です。
background 通常時(クリックされていないとき)の背景色を指定します。(bgと同じ)
bd 枠線の太さを指定します。
ただし、初期状態では枠線が表示されていないため、reliefで枠線のスタイルを指定する必要があります。(borderwidthと同じ)
bg backgroundと同じ
bitmap モノクロのBitmapを指定します。
(参考)https://anzeljg.github.io/rin2/book2/2405/docs/tkinter/bitmaps.html
borderwidth bdと同じ
command ボタンがクリックされたときに呼び出すメソッドの名前を指定します。
compound 文字と画像の両方を表示する際に、文字に対して画像の表示位置を指定します。
【設定値】tk.LEFT, tk.RIGHT, tk.BOTTOM, tk.TOP, tk.CENTER
cursor ウィジェット上にマウスポインタがある際のカーソルの種類を指定します。
(参考)https://tkdocs.com/shipman/cursors.html
disabledforeground stateオプションで無効(DISABLED)に設定している際の文字色を設定します。
fg 表示する文字色を指定します。(foregroundと同じ)
font 表示する文字のフォントを指定します。
foreground fgと同じ
height ボタンの高さを文字数で指定します。
画像を配置した時は、画素数の指定になります。
highlightbackground
highlightcolor
highlightthickness
image 表示する画像を指定します。
indicatoron
justify 複数行の文字のときの、文字寄せ方向を指定します。
【設定値】左寄せ(tk.LEFT), 中央寄せ(tk.CENTER), 右寄せ(tk.RIGHT)
offvalue チェックが無い時の値をTrue, Falseで指定します。
【初期値】False
onvalue チェックがある時の値をTrue, Falseで指定します。
【初期値】True
overrelief ウィジェット上にマウスポインタがある際のスタイルを指定します。
【設定値】tk.RAISED, tk.GROOVE, tk.SUNKEN, tk.RIDGE, tk.FLAT
【初期値】tk.FLAT(枠線なし)
padx 文字の両側の隙間を指定します。
pady 文字の上下の隙間を指定します。
relief ボタンのスタイルを指定します。
【設定値】tk.RAISED, tk.GROOVE, tk.SUNKEN, tk.RIDGE, tk.FLAT
【初期値】tk.FLAT(枠線なし)
selectcolor チェックボックス(チェックのある四角)の背景色を指定します。
selectimage
state ウィジェットの有効/無効(操作できない状態)を指定します。
【設定値】tk.NORMAL, tk.DISABLED
【初期値】tk.NORMAL
takefocus
text 表示する文字を指定します。
textvariable
tristateimage
tristatevalue
underline 指定した順番(先頭から0始まり)の文字にアンダーラインを付加します。
variable チェックの状態をBooleanVarクラスオブジェクトで指定します。
width ボタンの幅を文字数で指定します。
画像を配置した時は、画素数の指定になります。
wraplength 文字の折り返し幅を指定します。

 

メソッド

メソッド 説明
deselect() チェックなし状態にします。
flash() backgroundとactivebackgroundで交互に色を点滅させて表示します。
invoke()
select() チェックあり状態にします。
toggle() チェックのあり/なしを逆に設定します。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください