Python
 Computer >> コンピューター >  >> プログラミング >> Python

【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ウィジェットが配置されたウィンドウが表示されます。

【Tkinter】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)を意味し、変数が更新されるたびに登録したコールバック関数が実行されます。
  1. Tkinterでボタンを押した後にEntryウィジェットの内容をクリアする方法

    TkinterのEntryウィジェットは、ユーザーからの入力を受け付けるための1行テキストフィールドを表示する際に使用されます。このウィジェットの内容を消去するには、delete(0, END)メソッドを使います。このメソッドは指定した範囲の文字列を削除するもので、「0」(先頭)から「END」(末尾)までを指定することで、入力欄全体を空にすることができます。実際の実装では、この削除処理を関数として定義し、Buttonオブジェクトのcommandオプションに渡します。こうすることで、ボタンがクリックされたタイミングでEntryウィジェットの内容がクリアされる仕組みになります。実装例以下の例では、

  2. TkinterのボタンでEntryウィジェットのテキスト・値を設定する方法

    はじめにTkinterのEntryウィジェットは、1行分のテキストを表示・入力するためのウィジェットです。このウィジェットの値や内容は、ボタンのクリックをトリガーとして設定することができます。Entryウィジェットに対する主な操作には、「insert(挿入)」と「delete(削除)」の2種類があります。ここでは、TkinterのButtonウィジェットを使って、Entryウィジェットの内容を設定する方法を解説します。コード例#Import the required libraries from tkinter import * #Create an instance of tkinter