tkinter.(ttk.)Checkbutton【チェックボックス ウィジェット】

メモ  (  作成 テキスト 値の初期化・取得・設定 有効化・無効化 チェックスタイル 状態変化処理  )  オプション メソッド
 (  作成 値の初期化・取得・設定  )

メモ

Checkbuttonのサンプル画像


オプション

メモ

オプション 一覧

個別tkttk説明
commandConfig 状態変化処理関数 (引数なし)〔状態変化処理
(実行前に variable【値変数】 は更新)
stateConfig 状態 (tk 互換用 ttk(stateflags)【状態フラグ】を上書き)
NORMAL:通常状態 (foreground【前景色】を使用)
DISABLED:無効状態 (disabledforeground【無効状態の前景色】を使用)
(stateflags)state( )
詳細
状態フラグ (組合せ:state【状態】の変更なし)
(なし):通常状態
・'active':アクティブ状態
・'alternate':不確定状態
・'disabled':無効状態
・'pressed':押下状態
・'readonly':読み込み専用状態
・'selected':選択状態
テキスト・画像tkttk説明
fontStyleフォント (tkinter.Font)
textConfigテキスト文字列
textvariableConfig テキスト用ウィジェット変数
compoundテキストと画像の合成 (テキスト対しての画像位置)
bitmapビットマップ画像 ( image【画像】を優先 )
image画像 ( bitmap【ビットマップ画像】 より優先)
selectimageON 値の画像 (image【画像】未指定:無視)
tristateimage不明状態の画像 (image【画像】未指定:無視)
tkttk説明
offvalueConfigOFF 値 (デフォルト:0・OFF・NO・FALSE )
onvalueConfigON 値 (デフォルト:1・ON・YES・TRUE )
tristatevalue不確定状態の値 (デフォルト:空文字列 )
variableConfig 値用ウィジェット変数
サイズ・配置tkttk説明
height高さ (省略:自動計算)
・文字のみ:行数
・画像あり:ピクセル数 等
※:padding【内部間隔のリスト】の上下間隔で調整可能
width幅 (省略・0:自動計算 / 負:最小幅)
・文字のみ:文字数
・画像あり:ピクセル数 等
anchorStyleテキスト等の配置位置
justifyStyle 複数行テキストの揃え
LEFT【左端揃え】
CENTER【中央揃え】
RIGHT【右端揃え】
padding内部間隔のリスト
(左端・上端・右端・下端の順)
padxx方向の内部間隔 (ピクセル単位 等)
padyy方向の内部間隔 (ピクセル単位 等)
wraplengthワードラップの幅 (スクリーン座標系単位)
(0以下:折り返しなし)
外観tkttk説明
indicatormarginStyle インジケータの外部間隔のリスト
(ピクセル単位:左端・上端・右端・下端の順)
indicatoron インジケータ (チェック記号) の描画有無
True:チェック記号で表現 ( relief【外観】は有効 )
・False:押しボタン形状  ( relief【外観】は無効  / 参考:offrelief【OFF 値の外観】)
indicatorreliefStyle インジケータの外観
offreliefOFF 値の外観 (デフォルト:RAISED【隆起 (凸)】)
overrelief マウスカーソルが上にある場合の外観 (デフォルト:空文字列【未使用】)
relief外観
色 関連tkttk説明
background (bg)Style (―)背景色
foreground (fg)Style (―)前景色
activebackgroundStyle.map()
[background]
アクティブ状態の背景色
activeforegroundStyle.map()
[foreground]
アクティブ状態の前景色
disabledforegroundStyle.map()
[foreground]
無効状態の前景色
highlightbackground外枠の (入力フォーカスなし)
highlightcolor外枠の (入力フォーカスあり)
highlightthickness外枠の幅 (入力フォーカス用)
indicatorbackgroundStyle インジケータの背景色
indicatorcolorStyle インジケータの前景色
selectcolorStyle.map( )
[background]
ON 値の背景色 (デフォルト:空文字列【未使用】)
indicatoron【インジケータの描画有無】の指定値により下記動作
・True【有効】:ON / OFF に関係なくインジケータの背景色として使用
・False【無効】:ON の場合に背景色として使用
共通tkttk説明
borderwidth (bd)境界線の幅
class_クラス名
cursorConfigマウスカーソル名
nameインスタンス名 (省略:自動命名)
先頭は小文字・ドットは不可 / フルパスで一意
インスタンス識別
styleConfigスタイル名 (TCheckbutton)
takefocusConfig[Tab]キー等でのフォーカス移動の有無〔フォーカス
'' (空文字列):自動設定
False:なし (スキップ)
True:あり (タブストップ)
underlineConfig下線の文字位置 (0~)
(ショートカットキー用:実装は別途必要)
凡例
●:各種方法で指定可能
○:コンストラクタでのみ指定可能
▲:config( ) 等でのみ指定可能
Config:コンストラクタ 及び config( ) 等で指定可能
Style:Style でのみ指定可能
Method:メソッドの引数で指定
Default:デフォルト値
:テーマ依存

動的外観変更

style.map (スタイル名, 対象 = [(状態, 状態の値)])

対象状態オプション備考
background
【背景色】
active【アクティブ状態】activebackground
alternate【切り替え表示状態】
disabled【無効状態】
pressed【押下状態】active【アクティブ状態】より前に定義
readonly【読み取り専用状態】
selected【ON 状態】selectcolor
foreground
【前景色】
active【アクティブ状態】activeforeground
alternate【切り替え表示状態】
disabled【無効状態】disabledforeground
pressed【押下状態】active【アクティブ状態】より前に定義
readonly【読み取り専用状態】
selected【ON 状態】

色の詳細

説明
'色名'色名:'red'・'green'・'blue'・'gray0'~'gray100'・'system~' 等
下記参照
Tcl8.6/Tk8.6 - Tk Commands - colors
(同名色でも HTML5:カラー定義 と定義に差異あり)
'#RGB'16進 4ビット
'#RRGGBB'16進 8ビット
'#RRRGGGBBB'16進 12ビット
'#RRRRGGGGBBBB'16進 16ビット

配置位置の詳細 ( anchor )

配置位置説明
'配置位置'東西南北 (news) を使用した8方向 と 中央の文字列
下記参照
'nw'
NW
'n'
N
'ne'
NE
'w'
W
'center'
CENTER
'e'
E
'sw'
SW
's'
S
'se'
SE

マウスカーソル名の詳細 ( cursor )

マウスカーソル名説明
'マウスカーソル名'下記参照 ('arrow'・'wait' 等)
Tcl8.6/Tk8.6 - Tk Commands - cursors (英語)
Tkinter 8.5 reference: a GUI for Python - Cursors (英語)

テキストと画像の合成の詳細 ( compound )

指定値説明
(テキスト対しての画像位置)
'text' ttkテキストのみ表示
'image' ttk画像のみ表示
NONEテキストの代わりに画像表示
BOTTOM画像をテキストの下側に表示
TOP画像をテキストの上側に表示
LEFT画像をテキストの左側に表示
RIGHT画像をテキストの右側に表示
CENTER画像をテキストの上に表示

ビットマップ画像の詳細 ( bitmap )

指定値説明
@ファイル名標準X11形式 ビットマップ ファイル名
組み込み画像名下記参照 ('error'・'hourglass'・'info'・'question'・'warning' 等)
Tcl8.6/Tk8.6 - Tk C API - GetBitmap (英語)
Tkinter 8.5 reference: a GUI for Python - Bitmaps (英語)

内部間隔リストの詳細 ( padding )

指定値説明
[内部間隔 (左), 内部間隔 (上), 内部間隔 (右), 内部間隔 (下)]内部間隔の指定
(左から時計回り)
[内部間隔 (左), 内部間隔 (上・下), 内部間隔 (右)]
[内部間隔 (左・右), 内部間隔 (上・下)]
内部間隔 (上・下・左・右)

外観の詳細 ( relief )

外観説明
FLATフラット
GROOVE凹み枠
RAISED隆起 (凸)
RIDGE隆起枠 (凸枠)
SOLID実線
SUNKEN凹み

メソッド

コンストラクタ備考
Checkbutton(master=None, cnf={ },  **kw)
ttk.Checkbutton(master=None, **kw)
コンストラクタ
master親 (tkinter.Tk【トップレベルウィンドウ】・コンテナウィジェット)
cnf (辞書型引数)辞書型のオプション
kw (キーワード引数)オプション (複数可)
固有メソッド備考
deselect( ) tk選択解除
flash( ) tk 点滅 ('disabled'【無効状態】では無視)
(一部の環境でサポート)
invoke( ) 状態変化処理実行 ('disabled'【無効状態】では無視)
(選択状態を切り替え、command【状態変化処理関数】を実行)
select( ) tk選択
toggle( ) tk選択状態の切り替え
共通メソッド (抜粋) 〔詳細はリンク先〕備考
cget( 'option' )
widget['option']
オプション値 取得
下の構文はオプション値の設定も可
config( ~ )
configure( ~ )
オプション 設定・取得
pack( ~ )配置 (パック形式)
grid( ~ )配置 (グリッド形式)
place( ~ )配置 (座標形式)
state( ~ ) ttk状態フラグ 取得・設定
instate( ~ ) ttk状態フラグ チェック

作成

import tkinter as tk
import tkinter.ttk as ttk

# トップレベルウィンドウ作成
root = tk.Tk()

# tk.Checkbutton
var_checkbutton = tk.IntVar(value=1)
checkbutton = tk.Checkbutton(
    root,
    text="Checkbutton",
    variable=var_checkbutton,
    )
checkbutton.pack(anchor=tk.W, padx=10, pady=10)

# ttk.Checkbutton
var_checkbutton_ttk = tk.IntVar(value=1)
checkbutton_ttk = ttk.Checkbutton(
    root,
    text="ttk.Checkbutton",
    variable=var_checkbutton_ttk,
    )
checkbutton_ttk.pack(anchor=tk.W, padx=10, pady=10)

# メインループ
root.mainloop()

Checkbuttonのサンプル画像


値の初期化・取得・設定

import tkinter as tk
import tkinter.ttk as ttk


# ON / OFF
def check_onoff(flag):
    if flag == True:
        var_check.set(1)
        var_check_onoff.set("ON")
        var_check_ttk.set(1)
        var_check_ttk_onoff.set("ON")
    else:
        var_check.set(0)
        var_check_onoff.set("OFF")
        var_check_ttk.set(0)
        var_check_ttk_onoff.set("OFF")


# Get
def check_get():
    var_label.set(var_check.get())
    var_label_onoff.set(var_check_onoff.get())
    var_label_ttk.set(var_check_ttk.get())
    var_label_ttk_onoff.set(var_check_ttk_onoff.get())


# deselect()
def check_deselect():
    checkbutton.deselect()
    checkbutton_onoff.deselect()


# select()
def check_select():
    checkbutton.select()
    checkbutton_onoff.select()


# toggle()
def check_toggle():
    checkbutton.toggle()
    checkbutton_onoff.toggle()


# トップレベルウィンドウ作成
root = tk.Tk()

# tk.Checkbutton
var_check = tk.IntVar(value=1)
checkbutton = tk.Checkbutton(
    root, text="Checkbutton",
    variable=var_check)
checkbutton.grid(row=0, column=0, columnspan=2, sticky=tk.W, padx=5)
#
var_label = tk.StringVar(value="label")
label = ttk.Label(
    root, relief=tk.GROOVE,
    textvariable=var_label)
label.grid(row=0, column=2, sticky=tk.NSEW, padx=5, pady=5)

# tk.Checkbutton (ON/OFF 値変更)
var_check_onoff = tk.StringVar()
var_check_onoff.set("ON")
checkbutton_onoff = tk.Checkbutton(
    root, text="Checkbutton_onoff",
    offvalue="OFF",
    onvalue="ON",
    variable=var_check_onoff)
checkbutton_onoff.grid(row=1, column=0, columnspan=2, sticky=tk.W, padx=5)
#
var_label_onoff = tk.StringVar(value="label_onoff")
label_onoff = ttk.Label(
    root, relief=tk.GROOVE,
    textvariable=var_label_onoff)
label_onoff.grid(row=1, column=2, sticky=tk.NSEW, padx=5, pady=5)

# ttk.Checkbutton
var_check_ttk = tk.IntVar()
var_check_ttk.set(tk.ON)
checkbutton_ttk = ttk.Checkbutton(
    root, text="ttk.Checkbutton",
    variable=var_check_ttk)
checkbutton_ttk.grid(row=2, column=0, columnspan=2, sticky=tk.W, padx=5)
#
var_label_ttk = tk.StringVar(value="label_ttk")
label_ttk = ttk.Label(
    root, relief=tk.GROOVE,
    textvariable=var_label_ttk)
label_ttk.grid(row=2, column=2, sticky=tk.NSEW, padx=5, pady=5)

# ttk.Checkbutton (ON/OFF 値変更)
var_check_ttk_onoff = tk.StringVar()
var_check_ttk_onoff.set("ON")
checkbutton_ttk_onoff = ttk.Checkbutton(
    root,
    text="ttk.Checkbutton_onoff",
    offvalue="OFF",
    onvalue="ON",
    variable=var_check_ttk_onoff)
checkbutton_ttk_onoff.grid(row=3, column=0, columnspan=2, sticky=tk.W, padx=5)
#
var_label_ttk_onoff = tk.StringVar(value="label_ttk_onoff")
label_ttk_onoff = ttk.Label(
    root, relief=tk.GROOVE,
    textvariable=var_label_ttk_onoff)
label_ttk_onoff.grid(row=3, column=2, sticky=tk.NSEW, padx=5, pady=5)

# Button (Off)
button_off = ttk.Button(
    root, text="Off",
    command=lambda : check_onoff(False))
button_off.grid(row=4, column=0, padx=5, pady=5)

# Button (On)
button_on = ttk.Button(
    root, text="On",
    command=lambda : check_onoff(True))
button_on.grid(row=4, column=1, padx=5, pady=5)

# Button (Get)
button_get = ttk.Button(
    root, text="Get",
    command=check_get)
button_get.grid(row=4, column=2, padx=5, pady=5)

# Button (deselect)
button_toggle = ttk.Button(
    root, text="deselect() [tk]",
    command=check_deselect)
button_toggle.grid(row=5, column=0, padx=5, pady=5)

# Button (select)
button_toggle = ttk.Button(
    root, text="select() [tk]",
    command=check_select)
button_toggle.grid(row=5, column=1, padx=5, pady=5)

# Button (toggle)
button_toggle = ttk.Button(
    root, text="toggle() [tk]",
    command=check_toggle)
button_toggle.grid(row=5, column=2, padx=5, pady=5)

# メインループ
root.mainloop()

Checkbuttonのサンプル画像