ตัวแปร Tkinter (var) ถูกกำหนดไว้สำหรับวิดเจ็ตเฉพาะ (textvariable=var) เพื่อเก็บค่าที่อัปเดตของวิดเจ็ต บางครั้ง อาจมีบางกรณี ขณะอัปเดตข้อมูลตัวแปร เราจำเป็นต้องประมวลผลการดำเนินการพิเศษบางอย่าง เช่น อ่าน เขียน หรือไม่ได้กำหนด
Tkinter มีวิธีอัปเดตตัวแปรด้วยการติดตามฟังก์ชันการโทรกลับ (ตนเอง โหมด การเรียกกลับ) ซึ่งใช้การดำเนินการของกระบวนการเช่น read(r), write(w) , หรือ undefined(u) . บนพื้นฐานของค่าเหล่านี้ การเรียกกลับจะตัดสินว่ากระบวนการต้องทำอะไรในฟังก์ชันเรียกกลับ อีกสองค่ากำหนดตัวแปรที่ต้องติดตาม (ประกอบด้วยข้อมูลวิดเจ็ต) และดัชนีของตัวแปร
ตัวอย่าง
ในตัวอย่างนี้ เราจะติดตามค่าของวิดเจ็ตรายการที่ได้รับการอัปเดตเมื่อผู้ใช้ป้อนค่าในนั้น
#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()
ผลลัพธ์
การดำเนินการโค้ดข้างต้นจะแสดงวิดเจ็ตรายการที่เก็บอินพุตไว้ในตัวแปร ฟังก์ชันเรียกกลับจะติดตามค่าที่อัปเดตของตัวแปรและแสดงในวิดเจ็ตป้ายกำกับ
ตอนนี้ พิมพ์บางอย่างในวิดเจ็ตรายการที่กำหนด วิดเจ็ตป้ายกำกับจะเลียนแบบค่าอินพุตและแสดงเอาต์พุตบนหน้าต่าง
บนคอนโซล คุณจะเห็นสิ่งต่อไปนี้ -
H He Hel Hell Hello Hello Hello W Hello Wo Hello Wor Hello Worl Hello World