【Tkinter】テキストウィジェット(Text)から入力値を取得する方法
PythonのTkinterでは、Textウィジェットを使って複数行のテキスト入力欄を簡単に作成できます。しかし、GUIアプリケーションを開発していると、ユーザーがテキストウィジェットに入力した内容をプログラム側で取得したい場面がよくあります。
テキストウィジェットからユーザーの入力を取得するには、.get()メソッドを使用します。このメソッドには取得する文字列の範囲を指定する必要があり、一般的にはテキストの先頭を示す "1.0" から末尾を示す end までを範囲として指定します。
コード例
# tkinterライブラリをインポート
from tkinter import *
# tkinterウィンドウ(フレーム)のインスタンスを作成
win=Tk()
win.geometry("700x300")
def get_input():
value=my_text_box.get("1.0","end-1c")
print(value)
# テキストボックスウィジェットを作成
my_text_box=Text(win, height=5, width=40)
my_text_box.pack()
# コメント送信用のボタンを作成
comment= Button(win, height=5, width=10, text="Comment", command=lambda: get_input())
# command=get_input() により、ボタンが押されたタイミングで入力されたテキストを表示します
comment.pack()
win.mainloop()
ポイント解説
get("1.0", "end-1c"):テキストの先頭(1行目・0文字目)から末尾までの文字列を取得します。-1cを指定することで、自動的に挿入される末尾の改行文字を除外して取得できます。command=lambda: get_input():「Comment」ボタンがクリックされるとget_input()関数が呼び出され、その時点で入力されているテキストが処理されます。height=5, width=40:テキストボックスの高さ(行数)と幅(文字数)を指定しています。
実行結果
上記のコードを実行すると、テキストボックスが画面に表示され、ユーザーからの入力を受け付けます。「Comment」ボタンをクリックすると、入力されたテキストがコンソールに出力されます。

-
Tkinterでテキストウィジェットを読み取り専用(無効化)にする方法
Tkinterでは、テキストウィジェットを無効化(disabled)したいケースがあります。これを実現するには、テキストウィジェットの state オプションを DISABLED に設定します。こうすることでテキストウィジェットがフリーズし、読み取り専用の状態になります。この記事では、テキストウィジェットとボタンを作成し、ボタンをクリックするとテキストウィジェットを即座に無効化できるサンプルを紹介します。コード例# ライブラリのインポート from tkinter import * # ウィンドウのインスタンスを作成 win = Tk() # ウィンドウのサイズを設定 win.geomet
-
Tkinterでウィジェットの現在のX・Y座標を取得する方法
Tkinterは、PythonでGUIアプリケーションを開発するために広く利用されている標準ライブラリです。ボタン、テキストボックス、ラベルなど、さまざまなウィジェットが用意されており、これらを組み合わせることで直感的なユーザーインターフェースを構築できます。さらに、ウィジェットの配置位置や座標も、専用の関数やライブラリを使って柔軟にカスタマイズすることが可能です。ここでは、Tkinterフレーム上に配置したウィジェットの実際の座標を取得する方法を紹介します。ウィジェットの正確な座標を知りたい場合には、Tkinterライブラリが提供するgeometry(ジオメトリ)関連のメソッドを活用します。