【Python】Tkinterでフレームの中央にウィジェットを配置する方法
Tkinterでフレームの中央にオブジェクト(ウィジェット)を配置したい場合は、placeメソッドを使うのが最も簡単です。この記事では、具体的なコード例を通じて、その実装方法をわかりやすく解説します。
実装の手順
- 必要なライブラリをインポートし、Tkinterフレームのインスタンスを作成します。
- win.geometryメソッドを使って、ウィンドウのサイズを設定します。
- ボタンなどのウィジェットを作成し、ラベル(表示テキスト)を設定します。
- placeメソッドにx・y座標、または相対座標を指定して、ウィジェットの位置を決めます。
- ウィジェットの中心をフレームの相対位置0.5(relx=0.5, rely=0.5)に置き、anchor=CENTERを指定することで、正確に中央揃えにします。
- 最後にアプリケーションウィンドウのmainloopを実行します。
コード例
# Tkinterライブラリをインポート
from tkinter import *
from tkinter import ttk
# Tkinterフレームのインスタンスを作成
win = Tk()
# ウィンドウサイズを定義
win.geometry("750x350")
# フレーム内にボタンを作成
button = ttk.Button(win, text="Button at the Center")
button.place(relx=0.5, rely=0.5, anchor=CENTER)
win.mainloop()実行結果
このコードを実行すると、次のような出力ウィンドウが表示されます。

ポイント:relxとrelyによる相対指定
placeメソッドのrelxとrelyは、親フレームの幅と高さに対する相対的な位置(0.0〜1.0)を表します。両方に「0.5」を指定すれば、ウィジェットは常にフレームの中央に配置されます。さらにanchor=CENTERを指定することで、ウィジェット自体の中心がその座標に一致するようになります。
ここでウィンドウのサイズを変更してみてください。ボタンウィジェットが自動的に中央の位置へ再調整されることが確認できます。これは絶対座標(x=○○pxなど)で配置した場合には得られない、相対配置ならではのメリットです。
-
TkinterのボタンでEntryウィジェットのテキスト・値を設定する方法
はじめにTkinterのEntryウィジェットは、1行分のテキストを表示・入力するためのウィジェットです。このウィジェットの値や内容は、ボタンのクリックをトリガーとして設定することができます。Entryウィジェットに対する主な操作には、「insert(挿入)」と「delete(削除)」の2種類があります。ここでは、TkinterのButtonウィジェットを使って、Entryウィジェットの内容を設定する方法を解説します。コード例#Import the required libraries from tkinter import * #Create an instance of tkinter
-
Python Tkinterでメッセージボックスの表示位置を変更する方法
Tkinterを使ってダイアログボックスを作成したい場合、MessageBoxライブラリを利用すると、さまざまな種類のダイアログを手軽に生成できます。作成したダイアログボックスの位置を調整するには、Toplevelウィジェットを使用します。Toplevelは、現在のウィンドウを最前面に優先表示し、他の処理をバックグラウンドで維持する役割を持ちます。さらに、title(タイトル)、message(メッセージ)、details(詳細)といった機能も備えています。メッセージボックスウィジェットの表示位置を変更するには、geometryメソッドを使います。コード例# tkinterライブラリをインポー