Tkinterでウィジェットの現在のX・Y座標を取得する方法
Tkinterは、PythonでGUIアプリケーションを開発するために広く利用されている標準ライブラリです。ボタン、テキストボックス、ラベルなど、さまざまなウィジェットが用意されており、これらを組み合わせることで直感的なユーザーインターフェースを構築できます。さらに、ウィジェットの配置位置や座標も、専用の関数やライブラリを使って柔軟にカスタマイズすることが可能です。
ここでは、Tkinterフレーム上に配置したウィジェットの実際の座標を取得する方法を紹介します。ウィジェットの正確な座標を知りたい場合には、Tkinterライブラリが提供するgeometry(ジオメトリ)関連のメソッドを活用します。
具体的には、winfo_rootx() と winfo_rooty() という2つの関数を使用します。これらは、フレームまたはウィンドウを基準としたウィジェットの実際の座標を返してくれます。
サンプルコード
# tkinterライブラリをインポート
from tkinter import *
# tkinterフレームのインスタンスを作成
win = Tk()
# フレームのサイズを定義
win.geometry("600x400")
# テキストウィジェットを定義
my_text = Text(win, height=5, width=52)
# ラベルを作成
lab = Label(win, text="TutorialsPoint.com")
# フォントなどのプロパティを設定
lab.config(font=("Helvetica", 20))
# ボタンウィジェットを作成
my_button = Button(text="Hello")
# ウィジェットの位置を指定
my_button.place(x=100, y=100)
# tkinterフレームを基準に座標情報を更新
win.update()
# ボタンウィジェットとテキストウィジェットの座標を取得
widget_x1, widget_y1 = my_button.winfo_rootx(), my_button.winfo_rooty()
widget_x2, widget_y2 = my_text.winfo_rootx(), my_button.winfo_rooty()
lab.pack()
print(widget_x1, widget_y1)
print(widget_x2, widget_y2)
# ウィンドウを表示し続ける
win.mainloop()実行結果
上記のコードを実行すると、各ウィジェットの現在の位置が次のように出力されます。
134 157 0 157
この出力例では、ボタンウィジェットのX座標が「134」、Y座標が「157」であることが確認できます。winfo_rootx() および winfo_rooty() は画面左上を原点とする絶対座標を返すため、place(x=100, y=100) で指定した相対座標とは異なる値になる点に注意してください。
なお、win.update() を呼び出しているのは、ウィジェットがまだ描画されていない段階では正しい座標が取得できないためです。update()によってウィンドウの状態を最新化してから座標を取得することで、正確な値を得られます。
-
Tkinterでラベルのテキストを取得する方法を解説
TkinterのLabel(ラベル)ウィジェットは、ウィンドウ上にテキストや画像を表示するために使用される基本的なコンポーネントです。フォントファミリーやパディング、幅・高さなどのオプションを指定することで、ラベルの見た目を自由にカスタマイズできます。ラベルに設定したテキストを取得したい場合は、ラベルウィジェットに対して [text] を指定するだけで、簡単にその値へアクセスできます。以下に具体的なサンプルコードを示します。サンプルコード# 必要なライブラリをインポート from tkinter import * # tkinterフレームのインスタンスを作成 win = Tk() # ウ
-
Tkinterでウィジェットの現在のX・Y座標を取得する方法
Tkinterは、PythonでGUIアプリケーションを開発するために広く利用されている標準ライブラリです。ボタン、テキストボックス、ラベルなど、さまざまなウィジェットが用意されており、これらを組み合わせることで直感的なユーザーインターフェースを構築できます。さらに、ウィジェットの配置位置や座標も、専用の関数やライブラリを使って柔軟にカスタマイズすることが可能です。ここでは、Tkinterフレーム上に配置したウィジェットの実際の座標を取得する方法を紹介します。ウィジェットの正確な座標を知りたい場合には、Tkinterライブラリが提供するgeometry(ジオメトリ)関連のメソッドを活用します。