Python tkinterでボタンを作成する方法|標準tkinterとttkの違いも解説
PythonのGUIライブラリ「Tkinter」には、ウィンドウ上にボタンを作成するためのさまざまな方法が用意されています。この記事では、標準のtkinterモジュールを使ったボタンの作成方法と、テーマ機能を持つtkinter.ttkモジュールを使ったボタンの作成方法の2通りを、サンプルコードとともにわかりやすく解説します。
tkinterモジュールでボタンを作成する
以下のプログラムでは、まずウィンドウを作成し、続いてButtonクラスを使ってボタンを生成しています。tkinterモジュール全体をインポートしているため、作成されたボタンには従来型のスタイル(テーマ)が適用されます。
主なパラメータのポイント
- text: ボタンに表示する文字列を指定します。
- bd: ボタンの境界線(枠線)の太さを指定できます。
- command: ボタンがクリックされたときに実行する関数を指定します。ここでは
canv.destroyを渡しており、クリックするとウィンドウが閉じる仕組みになっています。
サンプルコード
# import everything from tkinter module
from tkinter import *
# create canvas
canv = Tk()
# Open canvas
canv.geometry('200x150')
# Create a Button
btn = Button(canv, text='Welcome to Tkinter!', bd='5',
command=canv.destroy)
# Set the button position.
btn.pack(side='top')
canv.mainloop()
実行結果
上記のコードを実行すると、次のように表示されます。

tkinter.ttkモジュールでボタンを作成する
次に、先ほどと同じ処理を、今度はtkinter.ttkモジュールを読み込んで実装します。ttk版のButtonには境界線(bd)オプションは存在しませんが、代わりにマウスカーソルをボタンに重ねると薄い青色のハイライトが表示されるのが特徴です。見た目がOSのネイティブスタイルに近づくため、よりモダンなデザインのアプリケーションになります。
サンプルコード
# import everything from tkinter module
from tkinter import *
from tkinter.ttk import *
# create a canvas
canv = Tk()
# Open a window
canv.geometry('200x150')
# Create a Button
btn = Button(canv, text='Welcome to Tkinter!',
command=canv.destroy)
# Set the button position.
btn.pack(side='top')
canv.mainloop()
実行結果
上記のコードを実行すると、次のように表示されます。

まとめ
標準のtkinterとtkinter.ttkのどちらでも、数行のコードで簡単にボタンを作成できます。細かい外観の調整が必要な場合は標準のtkinterを、モダンで統一感のあるデザインにしたい場合はttkを選ぶとよいでしょう。また、pack(side='top')でボタンの配置位置を決め、最後にmainloop()でイベントループを開始することで、クリック操作を受け付けられるGUIアプリケーションが完成します。
-
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を呼び出します。タイマー処理や定期的な更新