Tkinterのフレームに画像を配置する方法をわかりやすく解説
Tkinterで作成したフレームの中に画像を表示したい場合、Pillow(PIL)ライブラリと組み合わせることで簡単に実現できます。この記事では、フレーム内に画像を配置する具体的な手順を、サンプルコード付きで解説します。
画像を配置する手順
必要なライブラリをインポートし、tkinterウィンドウのインスタンスを作成します。画像を読み込んでフレーム内に表示するために、Pillow(PIL)ライブラリを使用します。
geometry()メソッドを使って、ウィンドウのサイズを設定します。
フレームを作成し、幅と高さを指定します。place()メソッドにanchor='center'を指定することで、フレームをウィンドウの中央に配置できます。
ImageTk.PhotoImage(Image.open("画像ファイル"))を使って、画像ファイルを開いてTkinter用のイメージオブジェクトに変換します。
フレーム内にLabel(ラベル)ウィジェットを作成し、そのlabel引数に読み込んだ画像を渡します。
最後に、アプリケーションウィンドウのmainloop()を実行して、GUIを起動します。
サンプルコード
# 必要なライブラリをインポート
from tkinter import *
from PIL import ImageTk, Image
# tkinterウィンドウのインスタンスを作成
win = Tk()
# ウィンドウのサイズを定義
win.geometry("700x500")
# フレームを作成(幅600px、高さ400px)
frame = Frame(win, width=600, height=400)
frame.pack()
frame.place(anchor='center', relx=0.5, rely=0.5)
# ImageTkオブジェクトを作成して画像を読み込む
img = ImageTk.PhotoImage(Image.open("forest.jpg"))
# テキストや画像を表示するためのLabelウィジェットを作成
label = Label(frame, image=img)
label.pack()
# メインループを開始
win.mainloop()実行結果
上記のコードを実行すると、700×500ピクセルのウィンドウが表示され、その中央に「forest.jpg」の画像が配置されたフレームが表示されます。
ポイントのまとめ
画像は直接Tkinterに渡せないため、ImageTk.PhotoImage()で変換する必要があります。
画像を保持する変数(ここではimg)は、関数内で作成した場合も参照が切れないようグローバル変数やインスタンス属性として保持しておくのが安全です。
フレームの中央配置にはplace(anchor='center', relx=0.5, rely=0.5)が便利です。
-
Tkinterで画像をボタンとして使う方法をわかりやすく解説
Tkinterでは、画像ファイルをそのままボタンとして表示することができます。この記事では、角丸の画像ボタンを作成する方法を、実際のコード例とともに解説します。ここで紹介する手法は、フォーム、ゲーム、ダイアログボックスなど、さまざまなアプリケーションに応用できる汎用的なテクニックです。 画像ボタンの作り方の基本 Tkinterで見栄えの良い角丸ボタンを作る最も簡単な方法は、あらかじめ用意したボタン用の画像を、クリック可能なウィジェットとして配置することです。これを実現するのがPhotoImage()関数で、指定した画像ファイルを読み込んでボタンに渡すことができます。 具体的には、以下の手順で画
-
Python Tkinterでキャンバス上の画像を中央に配置する方法
Tkinterを使ってGUIアプリケーションを開発している際、Tkinterのキャンバス(Canvas)上に画像を読み込みたいケースはよくあります。本記事では、その画像をキャンバスの中央に配置する方法を解説します。anchorパラメータとはデフォルトでは、キャンバスは画像を自身の幅と高さに従って配置します。しかし、anchor(アンカー)パラメータに方向の値を渡すことで、画像の位置を任意の方向(N:北、S:南、E:東、W:西、NS、EWなど)に操作できます。アンカーは画像関数と一緒に呼び出されるパラメータで、キャンバス内における画像の方向や位置を定義します。このanchorパラメータを活用すれ