【Python】Tkinterのスタイルを簡単に変更する方法をご紹介!

本ページには、プロモーションが含まれています。

本記事では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を使用している場合、下記のコマンドでインストール可能です。

  1. pip install ttkthemes

ライブラリのインストール方法が分からない場合は、下記の記事をご覧ください。

ソースコード

gistdd49560b37977cf11f49d57eb9019407

カスタマイズ時に便利なコードまとめ

使用できるフォントの調べ方

  1. import tkinter as tk
  2. from tkinter import font
  3.  
  4. root = tk.Tk()
  5. available_fonts = list(font.families())
  6. available_fonts.sort()
  7.  
  8. for f in available_fonts:
  9.     print(f)
  10.  
  11. root.destroy()

使用できるカラーの調べ方

  1. import tkinter as tk
  2.  
  3. root = tk.Tk()
  4. colors = root.winfo_rgb # color name が受け付けられるかチェックに使える
  5. color_names = sorted(root.tk.call("tk", "colornames")) # 全色名取得(Tk 8.6以降)
  6. for color in color_names:
  7.     print(color)
  8. root.destroy()

※古いTkinterを使っている場合は、エラーが出ます。

筆者は実際に出たため、その時は諦めて16進数指定するのがいいと思います。

使用できるオプションの調べ方

  1. import tkinter as tk
  2.  
  3. root = tk.Tk()
  4. label = tk.Label(root)
  5. print(label.keys())
  6. root.destroy()

※サンプルとしてLabelのオプションを調べています。

他のウィジェットを調べたい場合は、4行目のtk.Labelを変更してください。

使用できるttkthemes内テーマの調べ方

  1. from ttkthemes import ThemedTk
  2.  
  3. root = ThemedTk()
  4. print(root.get_themes())
  5. root.destroy()

具体的な見た目を知りたい方は、下記の公式ドキュメントを参考にしてください。

ttkthemes.readthedocs.io

参考記事

kuroro.blog

taida-eng.com


本記事の内容は以上となります。

Pythonは計算処理が得意な言語ですが、GUIを使ってデバックしたい時もあります。

そのような時は本記事の内容を知っておけば、より分かりやすくスマートなGUIを作れるので、ぜひ参考にしてみてください。

本記事は以上です。お疲れさまでした。