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

Tkinter変数トレースメソッドコールバックの引数は何ですか?


Tkinter変数(var) 特定のウィジェットに対して定義されています(textvariable =var) ウィジェットの更新された値を保存します。場合によっては、変数情報を更新しているときに、読み取り、書き込み、未定義な​​どの追加の操作を処理する必要がある場合があります。

Tkinterは、コールバック関数トレース(self、mode、callback)を使用して変数を更新する方法を提供します read(r)、write(w)などのプロセスの操作を行います 、または undefined(u) 。これらの値に基づいて、コールバックは、プロセスがコールバック関数で何をする必要があるかを決定します。他の2つの値は、トレースする必要のある変数(ウィジェット情報を含む)と変数のインデックスを定義します。

この例では、ユーザーが値を入力したときに更新されるエントリウィジェットの値をトレースします。

#Import the required library
from tkinter import*
#Create an instance of Tkinter frame
win = Tk()
win.geometry("750x250")
#create a variable to store the User Input
my_variable = StringVar()
def trace_when_Entry_widget_is_updated(var, index, mode):
   print ("{}".format(my_variable.get()))

my_variable.trace_variable("w", trace_when_Entry_widget_is_updated)
Label(win, textvariable = my_variable).pack(padx=5, pady=5)
Entry(win, textvariable = my_variable, width=20).pack(ipadx=20,padx=5, pady=5)
win.mainloop()

出力

上記のコードを実行すると、入力を変数に格納するエントリウィジェットが表示されます。コールバック関数は、変数の更新された値をトレースし、それをラベルウィジェットに表示します。

次に、指定されたエントリウィジェットに何かを入力します。ラベルウィジェットは入力値を模倣し、ウィンドウに出力を表示します。

Tkinter変数トレースメソッドコールバックの引数は何ですか?

コンソールでは、次のように表示されます-

H
He
Hel
Hell
Hello
Hello
Hello W
Hello Wo
Hello Wor
Hello Worl
Hello World

  1. Tkinterでエントリウィジェットの値を取得するにはどうすればよいですか?

    エントリウィジェットを作成し、その値を取得したいとします。この場合、 .get()を使用できます 方法。入力オブジェクトを変数にマップします。変数は、入力された値を印刷または表示するためにさらに使用できます。 例 この例では、ラベルウィジェットを介して入力テキストを表示するアプリケーションを作成します。 #Import tkinter library from tkinter import * from tkinter import ttk #Create an instance of tkinter frame or window win= Tk() #Set the geometry o

  2. Tkinterでボタンウィジェットのテキストを取得する

    特定のアプリケーションについて、ボタンの値をその名前で取得したいとします。このような場合、 .cget()を使用できます。 働き。すべてのtkinterウィジェットは.cget()をサポートしています 値や名前などのウィジェット構成を取得するために使用できるため、関数。 例 この特定の例では、ボタンを作成してから、ボタンのテキストを変数「mytext」に格納します。変数を使用して、ラベルウィジェットにテキストを表示します。 #Import tkinter library from tkinter import * from tkinter import ttk #Create an inst