tkinterのテーマ(ttk)を使ってみよう
tkinterには、ttkというテーマがあります。
ttkを使うとGUIの見た目を向上させたり、コードの書き方を簡素化できたりするメリットがあります。
テーマをインポートする
テーマを使うためには、ttkをインポートする必要があります。
import tkinter.ttk
ただ、上記の書き方をするとウィジェットを呼び出す時に、tkinter.ttk.Label のように冗長になってしまうので、一般的には以下の書き方をします。
こうすることで、ttk.Label と書くことができます。
from tkinter.ttk import *
メモ
Button、Checkbutton、Entry、Frame、Label、LabelFrame、Menubutton、PanedWindow、Radiobutton、Scale、Scrollbarの各ウィジェットが自動的に tkinter.ttk ウィジェットに置き換わります。
テーマの種類
テーマには、いくつか種類があります。
テーマの種類を確認するには、Styleクラスの theme_names()メソッドを使います。
オブジェクト名 = ttk.Style()
オブジェクト名.theme_names()
プラットフォームによって違いますが、以下はWindows版の例です。
実行例
>>> from tkinter.ttk import
>>> style = ttk.Style()
>>> style.theme_names()
('winnative', 'clam', 'alt', 'default', 'classic', 'vista', 'xpnative')
テーマの使い方
テーマを使うには、Styleクラスの theme_use()メソッドを使います。
オブジェクト名 = ttk.Style()
オブジェクト名.theme_use("テーマ名")
テーマを使ったプログラム
以下のプログラムは、ラベル、ボタン、ラジオボタン、チェックボタンの各ウィジェットを、テーマを使っていないパターンとテーマを使ったパターンで表示しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
### インポート import tkinter from tkinter import ttk ### 画面作成 main = tkinter.Tk() ### スタイル作成 style = ttk.Style() ### テーマ設定 style.theme_use("classic") ### ウィジェット作成 label1 = tkinter.Label(main, text="LABEL") label2 = ttk.Label(main, text="LABEL") button1 = tkinter.Button(main, text="BUTTON") button2 = ttk.Button(main, text="BUTTON") radio1 = tkinter.Radiobutton(main, text="RADIO") radio2 = ttk.Radiobutton(main, text="RADIO") check1 = tkinter.Checkbutton(main, text="CHECK") check2 = ttk.Checkbutton(main, text="CHECK") ### ウィジェット配置 label1.grid(row=0, column=0, sticky="w") label2.grid(row=0, column=1, sticky="w") button1.grid(row=1, column=0, sticky="w") button2.grid(row=1, column=1, sticky="w") radio1.grid(row=2, column=0, sticky="w") radio2.grid(row=2, column=1, sticky="w") check1.grid(row=3, column=0, sticky="w") check2.grid(row=3, column=1, sticky="w") ### イベントループ main.mainloop() |
プログラムを実行すると、以下のような画面が表示されます。
左がテーマを使っていないパターン、右がclassicというテーマを使ったパターンです。