【Tkinter】Entryウィジェットに変数を接続して入力値を取得する方法
TkinterのEntryウィジェットは、ユーザーからの1行テキスト入力を受け付けるための入力ウィジェットです。UTF-8で表現できるあらゆる種類の文字を受け入れることができます。
Entryウィジェットに入力された値を取得するには、まず文字列を格納するための変数(StringVar)を定義します。この変数をEntryウィジェットのtextvariableオプションに指定することで、ウィジェットと変数が連携し、入力内容が自動的に変数へ反映されるようになります。
さらに、trace()メソッドで変数の変更を監視すれば、ユーザーが1文字入力するたびにコールバック関数が呼び出され、get()メソッドによって最新の入力値を取得して表示できます。
サンプルコード
# Tkinterライブラリをインポート
from tkinter import *
# Tkinterフレームのインスタンスを作成
win = Tk()
# ウィンドウのサイズを設定
win.geometry("700x250")
# 文字列型の変数を定義
var = StringVar()
# Entryウィジェットの入力を表示する関数を定義
def printinput(*args):
print(var.get())
# Entryウィジェットを作成し、変数を接続
entry = Entry(win, width=35, textvariable=var)
entry.pack()
# 変数の変更を監視(トレース)して入力を取得
var.trace("w", printinput)
win.mainloop()実行結果
上記のコードを実行すると、Entryウィジェットが配置されたウィンドウが表示されます。

Entryウィジェットに何かを入力すると、入力された文字がリアルタイムでコンソールに出力されます。
H He Hel Hell Hello Hello W Hello Wo Hello Wor Hello Worl Hello World Hello World!
ポイント解説
- StringVar():Entryウィジェットと連携できる文字列型の特殊な変数です。通常のPython変数ではウィジェットとの自動同期が行えません。
- textvariableオプション:ウィジェットに変数を接続するための引数です。これにより、入力内容が自動的に変数へ格納されます。
- trace("w", 関数):第1引数の"w"は書き込み(write)を意味し、変数が更新されるたびに登録したコールバック関数が実行されます。
-
Tkinterでボタンを押した後にEntryウィジェットの内容をクリアする方法
TkinterのEntryウィジェットは、ユーザーからの入力を受け付けるための1行テキストフィールドを表示する際に使用されます。このウィジェットの内容を消去するには、delete(0, END)メソッドを使います。このメソッドは指定した範囲の文字列を削除するもので、「0」(先頭)から「END」(末尾)までを指定することで、入力欄全体を空にすることができます。実際の実装では、この削除処理を関数として定義し、Buttonオブジェクトのcommandオプションに渡します。こうすることで、ボタンがクリックされたタイミングでEntryウィジェットの内容がクリアされる仕組みになります。実装例以下の例では、
-
TkinterのボタンでEntryウィジェットのテキスト・値を設定する方法
はじめにTkinterのEntryウィジェットは、1行分のテキストを表示・入力するためのウィジェットです。このウィジェットの値や内容は、ボタンのクリックをトリガーとして設定することができます。Entryウィジェットに対する主な操作には、「insert(挿入)」と「delete(削除)」の2種類があります。ここでは、TkinterのButtonウィジェットを使って、Entryウィジェットの内容を設定する方法を解説します。コード例#Import the required libraries from tkinter import * #Create an instance of tkinter