
本記事ではPythonでGUIを作る時、方法の1つとして挙げられるTkinterのスタイルを、簡単かつ分かりやすく変えてくれる方法を2通りご紹介していきます。
ttkを使った方法

本記事のソースコードを実行すると、上記のようなGUIが出てきます。
各項目の上段が通常のTkinterで、中央がttkを何もカスタマイズせず使った場合、下段がttkのカスタマイズを入れた状態となります。
ソースコード
gist3d951f9bda3158a051c8aca496fd3f7e
スタイルの命名規則
上記のソースコードにてスタイルを定めている名前ですが、これには下記のような命名規則があります。
任意の名前.カスタマムウィジェット名
基本的にはウィジェット名の前に【T】を付けたものですが、使用する場合はご注意下さい。
よく使用されるのは下記の通り
・Label→TLabel
・Button→TButton
・Entry→TEntry
・Checkbutton→TCheckbutton
・Radiobutton→TRadiobutton
・Combobox→TCombobox
・Frame→TFrame
ttkthemesを使った方法

次にttkthemesというttkの拡張ライブラリを使用した方法についてご紹介していきます。
上図は実際にttkthemesのテーマを使ったものです。
インストール
ttkthemesを使う場合は、まずはライブラリをインストールしてください。
pipを使用している場合、下記のコマンドでインストール可能です。
- pip install ttkthemes
ライブラリのインストール方法が分からない場合は、下記の記事をご覧ください。
【Python】ライブラリをインポートできない時の対処法をまとめてご紹介! - TomoGのごちゃまぜ倉庫
ソースコード
gistdd49560b37977cf11f49d57eb9019407
カスタマイズ時に便利なコードまとめ
使用できるフォントの調べ方
- import tkinter as tk
- from tkinter import font
- root = tk.Tk()
- available_fonts = list(font.families())
- available_fonts.sort()
- for f in available_fonts:
- print(f)
- root.destroy()
使用できるカラーの調べ方
- import tkinter as tk
- root = tk.Tk()
- colors = root.winfo_rgb # color name が受け付けられるかチェックに使える
- color_names = sorted(root.tk.call("tk", "colornames")) # 全色名取得(Tk 8.6以降)
- for color in color_names:
- print(color)
- root.destroy()
※古いTkinterを使っている場合は、エラーが出ます。
筆者は実際に出たため、その時は諦めて16進数指定するのがいいと思います。
使用できるオプションの調べ方
- import tkinter as tk
- root = tk.Tk()
- label = tk.Label(root)
- print(label.keys())
- root.destroy()
※サンプルとしてLabelのオプションを調べています。
他のウィジェットを調べたい場合は、4行目のtk.Labelを変更してください。
使用できるttkthemes内テーマの調べ方
- from ttkthemes import ThemedTk
- root = ThemedTk()
- print(root.get_themes())
- root.destroy()
具体的な見た目を知りたい方は、下記の公式ドキュメントを参考にしてください。
参考記事
本記事の内容は以上となります。
Pythonは計算処理が得意な言語ですが、GUIを使ってデバックしたい時もあります。
そのような時は本記事の内容を知っておけば、より分かりやすくスマートなGUIを作れるので、ぜひ参考にしてみてください。
本記事は以上です。お疲れさまでした。