PythonのTkinterでボタンに画像を追加する方法【サンプルコード付き】
Pythonの標準GUIライブラリ「Tkinter」には、ボタンなどのウィジェットに画像を追加する機能が備わっています。テキストだけではなくアイコンや画像を表示することで、ユーザーは視覚的なシンボルから操作内容を直感的に把握できるようになり、インターフェース全体の使いやすさが大きく向上します。
本記事では、Pillow(PIL)ライブラリのImageTkモジュールに含まれるPhotoImageクラスを使用し、ローカルに保存した画像ファイルを読み込んでウィジェットに表示する方法を解説します。画像ファイルのパスは、ご自身の環境に合わせて適宜変更してください。
サンプルコード
from tkinter import *
from PIL import ImageTk, Image
base = Tk()
base.title('Start Button')
# 画像ファイルを読み込み、Tkinterで扱える形式に変換
img = ImageTk.PhotoImage(Image.open("D:\\button.jpg"))
# ラベルとして画像を表示する場合
lab = Label(base, image=img)
lab.pack()
# ボタン自体に画像を設定する場合
button = Button(base, image=img, command=base.quit)
button.pack()
base.mainloop()
コードのポイント
Image.open():Pillowを使ってローカルの画像ファイルを開きます。ImageTk.PhotoImage():開いた画像をTkinterで表示できる形式に変換します。Button(base, image=img):textオプションの代わりにimageオプションを指定すると、ボタン上に画像を表示できます。command=base.quit:ボタンがクリックされたときにアプリケーションを終了します。
注意点
PhotoImageオブジェクトは、変数として参照が保持されていないとガベージコレクションによって破棄され、画像が表示されなくなることがあります。関数内で生成する場合は、必ずグローバル変数やインスタンス属性などに保持しておきましょう。また、テキストと画像を同時に表示したい場合は、compound="top"などのオプションを組み合わせると便利です。
実行結果
上記のコードを実行すると、画像が表示されたラベルとボタンを含むウィンドウが起動します。
-
PythonのTkinterプログラミング入門:GUIアプリケーション開発の基本
TkinterとはTkinterは、Pythonに標準で付属しているGUI(グラフィカルユーザーインターフェース)ライブラリです。PythonとTkinterを組み合わせることで、手軽かつスピーディーにGUIアプリケーションを構築できます。Tkinterは、Tk GUIツールキットへの強力なオブジェクト指向インターフェースを提供しており、ボタンやラベルなどの部品(ウィジェット)を直感的に配置できるのが特徴です。GUIアプリケーション作成の基本手順Tkinterを使ったGUIアプリケーションの作成はとてもシンプルです。基本的には、以下の手順に従うだけで実装できます。Tkinterモジュールをイン
-
Pythonでの画像処理入門!PillowとOpenCVで学ぶ基本操作
Pythonには、画像処理に役立つ豊富なライブラリが用意されています。代表的なものは以下の通りです。 OpenCV − リアルタイムコンピュータビジョンを主眼とした画像処理ライブラリ。2D・3D特徴量ツールキット、顔認識やジェスチャー認識、ヒューマンコンピュータインタラクション、モバイルロボティクス、物体識別など、幅広い分野で活用されています。 NumPy / SciPy − 画像の操作や処理に利用される数値計算ライブラリ。 scikit-image − 画像処理向けの多数のアルゴリズムを提供するライブラリ。 Pillow(Python Imaging Library) − サムネイル作成、
