tkinter.(ttk.)Frame【フレーム ウィジェット】

メモ  (  作成-子ウィジェットの有効化・無効化- )  オプション メソッド

メモ

Frameのサンプル画像


オプション

メモ

オプション 一覧

個別tkttk説明
containerアプリケーションの埋め込み可否 (True:可 / False:不可)
(stateflags)state( )
詳細
状態フラグ (組合せ)
(なし):通常状態
・'disabled':無効状態 (外観の変更なし)〔子ウィジェットの有効化・無効化
サイズ・配置tkttk説明
heightConfig 高さ (ピクセル単位 等)
デフォルト:内部コンテンツのサイズに自動調整
サイズ固定:grid_propagate(False)  または pack_propagate(False)【サイズ調整の有無】で調整なし
widthConfig 幅 (ピクセル単位 等)
デフォルト:内部コンテンツのサイズに自動調整
サイズ固定:grid_propagate(False)  または pack_propagate(False)【サイズ調整の有無】で調整なし
padding内部間隔のリスト
(左端・上端・右端・下端の順)
padxx方向の内部間隔 (ピクセル単位 等)
padyy方向の内部間隔 (ピクセル単位 等)
外観tkttk説明
borderwidth境界線幅
relief外観
色 関連tkttk説明
backgroundStyle 背景色
空文字列背景・境界線を非表示
highlightbackground外枠の (入力フォーカスなし)
highlightcolor外枠の (入力フォーカスあり)
highlightthickness外枠の幅 (入力フォーカス用)
colormapカラーマップ
visualビジュアル情報 〔Tk_GetVisual (英語)
共通tkttk説明
class_クラス名
cursorConfigマウスカーソル名
nameインスタンス名 (省略:自動命名)
先頭に半角大文字は不可・ドットは不可 / フルパスで一意
インスタンス識別
styleConfigスタイル名 (TFrame)
takefocusConfig[Tab]キー等でのフォーカス移動の有無〔フォーカス関連メソッド
' ' (空文字列):自動設定
False:なし (スキップ)
True:あり (タブストップ)
凡例
●:各種方法で指定可能
○:コンストラクタでのみ指定可能
▲:config( ) 等でのみ指定可能
Config:コンストラクタ 及び config( ) 等で指定可能
Style:Style でのみ指定可能
Method:メソッドの引数で指定
Default:デフォルト値
:テーマ依存

色の詳細

説明
'色名'色名:'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ビット

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

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

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

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

外観の詳細 ( relief )

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

メソッド

コンストラクタ備考
Frame(master=None, cnf={ }, **kw)
ttk.Frame(master=None, **kw)
コンストラクタ
master親 (tkinter.Tk【トップレベルウィンドウ】・コンテナウィジェット)
cnf (辞書型引数)辞書型のオプション
kw (キーワード引数)オプション (複数可)
固有メソッド備考
なし
共通メソッド (抜粋) 〔詳細はリンク先〕備考
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.Frame
frame = tk.Frame(
    root,
    borderwidth=1,
    relief=tk.GROOVE,
    background="lightblue",
)
frame.pack(side=tk.LEFT, padx=5, pady=5)

# Radio
var_radio = tk.IntVar(value=1)
radio_1 = tk.Radiobutton(
    frame,
    text="Radiobutton (1)",
    value=1,
    variable=var_radio,
    background="lightblue",
)
radio_1.pack(padx=10, pady=5)
radio_2 = tk.Radiobutton(
    frame,
    text="Radiobutton (2)",
    value=2,
    variable=var_radio,
    background="lightblue",
)
radio_2.pack(padx=10, pady=5)

# ttk.Frame
style = ttk.Style()
style.configure(
    "example.TFrame",
    background="lightblue",
)
frame_ttk = ttk.Frame(
    root,
    style="example.TFrame",
    relief=tk.GROOVE,
)
frame_ttk.pack(side=tk.LEFT, padx=5, pady=5)

# ttk.Radio
style.configure(
    "example.TRadiobutton",
    background="lightblue",
)
var_radio_ttk = tk.IntVar(value=1)
radio_ttk_1 = ttk.Radiobutton(
    frame_ttk,
    style="example.TRadiobutton",
    text="ttk.Radiobutton (1)",
    value=1,
    variable=var_radio_ttk,
)
radio_ttk_1.pack(padx=10, pady=5)
radio_ttk_2 = ttk.Radiobutton(
    frame_ttk,
    style="example.TRadiobutton",
    text="ttk.Radiobutton (2)",
    value=2,
    variable=var_radio_ttk,
)
radio_ttk_2.pack(padx=10, pady=5)

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

Frameのサンプル画像


子ウィジェットの有効化・無効化

Progressbar【プログレスバー】の変更が判別できる様にテーマ変更

import tkinter as tk
import tkinter.ttk as ttk


def set_state():
    if var_check.get() == tk.ON:
        child_state(tk.NORMAL)
    else:
        child_state(tk.DISABLED)


def child_state(flag):
    if flag == tk.NORMAL:
        stateflags = ['!disabled']
    else:
        stateflags = ['disabled']
    # tk.Frame
    for child in frame.winfo_children():
        keys = child.keys()
        if "state" in keys:
            child.config(state=flag)
        if getattr(child, "state", None) != None:
            child.state(stateflags)
    # ttk.Frame
    frame_ttk.state(stateflags)
    for child in frame_ttk.winfo_children():
        keys = child.keys()
        if "state" in keys:
            child.config(state=flag)
        if getattr(child, "state", None) != None:
            child.state(stateflags)


# トップレベルウィンドウ作成
root = tk.Tk()
style = ttk.Style()
style.theme_use("alt")

# tk.Frame
frame = tk.Frame(
    root,
    borderwidth=1,
    relief=tk.GROOVE,
)
frame.grid(row=0, column=0, padx=5, pady=5)

# Radio
var_radio = tk.IntVar(value=1)
radio_1 = tk.Radiobutton(
    frame,
    text="Radiobutton (1)",
    value=1,
    variable=var_radio,
)
radio_1.pack(padx=10, pady=5)
radio_2 = tk.Radiobutton(
    frame,
    text="Radiobutton (2)",
    value=2,
    variable=var_radio,
)
radio_2.pack(padx=10, pady=5)

# Progressbar
progressbar = ttk.Progressbar(
    frame,
    value=50,
)        
progressbar.pack(padx=10, pady=5)

# ttk.Frame
frame_ttk = ttk.Frame(
    root,
    relief=tk.GROOVE,
)
frame_ttk.grid(row=0, column=1, padx=5, pady=5)

# ttk.Radio
var_radio_ttk = tk.IntVar(value=1)
radio_ttk_1 = ttk.Radiobutton(
    frame_ttk,
    text="ttk.Radiobutton (1)",
    value=1,
    variable=var_radio_ttk,
)
radio_ttk_1.pack(padx=10, pady=5)
radio_ttk_2 = ttk.Radiobutton(
    frame_ttk,
    text="ttk.Radiobutton (2)",
    value=2,
    variable=var_radio_ttk,
)
radio_ttk_2.pack(padx=10, pady=5)

# Progressbar (2)
progressbar_2 = ttk.Progressbar(
    frame_ttk,
    value=50,
)        
progressbar_2.pack(padx=10, pady=5)

# Checkbutton
var_check = tk.IntVar(value=tk.ON)
checkbutton = ttk.Checkbutton(
    root,
    command=set_state,
    text="有効",
    variable=var_check,
)
checkbutton.grid(row=1, column=0, sticky=tk.W, padx=10, pady=5)

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

Frameのサンプル画像   Frameのサンプル画像