Tcl - Tk ttk ウィジェットのスタイルを設定する

目次

ウィジェットのスタイルを編集する

ウィジェットのスタイルを編集するには、 ttk::style configure コマンドに「スタイル名」、 「-オプション名」、 「オプションの値」を指定します。

ここで、「-オプション名」と「オプションの値」は複数指定することができます。

デフォルトのスタイルを設定する

ウィジェットのデフォルトのスタイルを設定するには、次のような手順で実現できます。

  1. スタイル編集時、「スタイル名」に任意のウィジェットの「クラス名 (ttk::Label なら TLabel)」を指定する
  2. 任意のウィジェットを作成する時に、style オプションを指定する必要は無い (指定しても良い)

Example

source code

package require Tk

wm title . "Tk win"

font create font1 -size 10 -weight "bold"
ttk::style configure TLabel -font font1 \
                            -background "#ffff00" \
                            -foreground "#009900"

font create font2 -size 8 -slant "italic"
ttk::style configure TButton -font font2 \
                             -background "#ffccff" \
                             -foreground "#0000ff"

ttk::label .label1 -text "Armadillo"
ttk::label .label2 -text "Bear"
ttk::label .label3 -text "Cat"
foreach w {.label1 .label2 .label3} {
    $w configure -padding 8 -borderwidth 2 -relief "ridge"
    pack $w
}

ttk::button .button -text "BUTTON"
pack .button -pady {8 0}

result

実行結果

独自のスタイルを設定する

ウィジェットに独自のスタイルを設定するには、次のような手順で実現できます。

  1. スタイル編集時、「スタイル名」に「任意のスタイル名」を指定する
  2. 任意のウィジェットを作成する時に、style オプションには「任意のスタイル名」を指定する

Example

source code

package require Tk

wm title . "Tk win"

font create font1 -size 10
ttk::style configure TLabel -font font1 \
                            -background "yellow" \
                            -foreground "green"

font create font2 -size 10 -weight "bold"
ttk::style configure Strong.TLabel -font font2 \
                                   -foreground "red"

ttk::label .label1 -text "Armadillo"
ttk::label .label2 -text "Bear" -style "Strong.TLabel"
ttk::label .label3 -text "Cat"
foreach w {.label1 .label2 .label3} {
    $w configure -padding 8 -borderwidth 2 -relief "ridge"
    pack $w
}

result

実行結果

参考リンク