Python Tkinterでボタンにスタイルを適用する方法を解説
Tkinterは、PythonでGUIアプリケーションを構築するための標準ツールキットであり、直感的なインターフェース開発を強力にサポートします。ボタンのスタイリングにおいても、フォント、サイズ、文字色などを自由にカスタマイズできる柔軟な仕組みが用意されています。本記事では、キャンバス上の特定のボタンだけにスタイルを適用する方法と、すべてのボタンに一括でスタイルを適用する方法を、具体的なコード例とともに解説します。
特定のボタンにスタイルを適用する
まず、キャンバス上に2つのボタンが配置されており、1つ目のボタンにのみスタイルを適用したいケースを考えてみましょう。この場合は、ttkのStyleクラスを使って「W.TButton」という独自のスタイル名を定義し、フォントと前景色(foreground)を設定します。スタイルを適用したいボタン側では、style='W.TButton'のようにスタイル名を指定します。
サンプルコード
from tkinter import *
from tkinter.ttk import *
# キャンバス(ウィンドウ)の設定
canv = Tk()
canv.geometry('200x150')
# スタイルオブジェクトを作成
sto = Style()
# スタイルを設定
sto.configure('W.TButton', font=('Arial', 10, 'underline'),
foreground='Green')
# スタイルを適用したボタン
btns = Button(canv, text='Welcome !',
style='W.TButton',
command=canv.destroy)
btns.grid(row=0, column=1, padx=50)
# スタイルを適用していないボタン
btnns = Button(canv, text='Click to Start !', command=None)
btnns.grid(row=1, column=1, pady=10, padx=50)
canv.mainloop()実行結果
上記のコードを実行すると、以下のような画面が表示されます。

1つ目の「Welcome !」ボタンには緑色の下線付きフォントが適用されている一方、2つ目のボタンはデフォルトの外観のまま表示されます。このように、独自のスタイル名(W.TButton)を指定したボタンだけに、個別のデザインを反映させることが可能です。
すべてのボタンにスタイルを適用する
すべてのボタンに同じスタイルをまとめて適用したい場合は、スタイル名として「TButton」を使用します。「TButton」はttkにおけるボタンの基本スタイル名であるため、この名前で設定を行うと、キャンバス上のすべてのボタンに自動的にスタイルが反映されます。
サンプルコード
from tkinter import *
from tkinter.ttk import *
canv = Tk()
canv.geometry('200x150')
# スタイルオブジェクトを作成
sto = Style()
# スタイルを設定
sto.configure('TButton', font=('calibri', 10, 'bold', 'underline'),
foreground='Green')
# ボタン1
btns = Button(canv, text='Welcome !',
style='TButton',
command=canv.destroy)
btns.grid(row=0, column=1, padx=50)
# ボタン2
btnns = Button(canv, text='Click to start !', command=None)
btnns.grid(row=1, column=1, pady=10, padx=50)
canv.mainloop()実行結果
上記のコードを実行すると、以下のような画面が表示されます。

今回は2つ目のボタンに明示的にスタイルを指定していませんが、「TButton」がデフォルトのボタンスタイルとして上書きされるため、両方のボタンに緑色の太字・下線付きフォントが適用されています。
まとめ
Tkinter(ttk)のStyleクラスを使えば、ボタンの見た目を簡単にカスタマイズできます。重要なのはスタイル名の使い分けです。
- W.TButton:独自のスタイル名を定義し、特定のボタンにのみ適用する
- TButton:基本スタイルを上書きし、すべてのボタンに一括適用する
フォントや文字色以外にも、背景色やパディングなどさまざまなオプションを組み合わせられるので、アプリケーションのデザインに合わせて柔軟に調整してみてください。
-
PythonのTkinterプログラミング入門:GUIアプリケーション開発の基本
TkinterとはTkinterは、Pythonに標準で付属しているGUI(グラフィカルユーザーインターフェース)ライブラリです。PythonとTkinterを組み合わせることで、手軽かつスピーディーにGUIアプリケーションを構築できます。Tkinterは、Tk GUIツールキットへの強力なオブジェクト指向インターフェースを提供しており、ボタンやラベルなどの部品(ウィジェット)を直感的に配置できるのが特徴です。GUIアプリケーション作成の基本手順Tkinterを使ったGUIアプリケーションの作成はとてもシンプルです。基本的には、以下の手順に従うだけで実装できます。Tkinterモジュールをイン
-
Python Tkinterのafter()メソッドの使い方を徹底解説
Tkinterは、PythonでGUIアプリケーションを作成するための標準ライブラリです。ウィンドウやボタン、ラベルなどのウィジェットを作成・操作するための組み込みメソッドが多数用意されており、データの表示やGUIイベントの処理を簡単に実装できます。本記事では、その中でも特に便利なafter()メソッドの使い方について、具体的なコード例とともに詳しく解説します。after()メソッドの基本構文.after(delay, FuncName=FuncName)このメソッドは、指定した遅延時間(ミリ秒単位)が経過した後に、引数として渡した関数FuncNameを呼び出します。タイマー処理や定期的な更新