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
廣告