Tkinter 變數 trace 方法回撥函式的引數是什麼?


Tkinter 變數 **(var)** 是為特定部件 **(textvariable=var)** 定義的,用於儲存部件更新後的值。有時,在更新變數資訊時,可能需要處理一些額外的操作,例如讀取、寫入或未定義的操作。

Tkinter 提供了一種使用回撥函式 trace **(self, mode, callback)** 更新變數的方法,該方法接受程序的操作,例如 **讀取(r)**、**寫入(w)** 或 **未定義(u)**。根據這些值,回撥函式決定在回撥函式中需要執行什麼操作。其他兩個值定義了需要跟蹤的變數(包含部件資訊)和變數的索引。

示例

在本例中,我們將跟蹤 Entry 部件的值,該值在使用者在其中輸入值時會更新。

#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()

輸出

執行上述程式碼將顯示一個 Entry 部件,該部件將輸入儲存在變數中。回撥函式將跟蹤變數的更新值,並在 Label 部件中顯示它。

現在,在給定的 Entry 部件中輸入一些內容。標籤部件將模仿輸入值並在視窗上顯示輸出。

在控制檯上,您將看到以下內容:

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

更新於: 2021年4月22日

3K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告