อัปเดต เมธอดจะประมวลผลงานที่ไม่ได้ใช้งานที่ค้างอยู่ทั้งหมด เหตุการณ์ที่ไม่ได้เยี่ยมชม ฟังก์ชันการเรียก และการเรียกกลับทั้งหมด วิธีนี้ใช้ได้กับการอัปเดตและประมวลผลเหตุการณ์หรืองานทั้งหมด เช่น การวาดวิดเจ็ตใหม่ การจัดการเรขาคณิต การกำหนดค่าคุณสมบัติวิดเจ็ต ฯลฯ
นอกจากนี้ยังช่วยให้แน่ใจว่าหากแอปพลิเคชันมีงานที่ค้างอยู่ มันก็จะอัปเดตหรือรีเฟรชค่าที่ส่งผลต่อส่วนทั้งหมดของแอปพลิเคชัน ใช้อัปเดต สำหรับงานเดียวที่รอดำเนินการอาจเป็นเรื่องที่น่ารังเกียจ ดังนั้น Tkinter ยังมี update_idletasks() กระบวนการ. มันอัปเดตเฉพาะงานที่ค้างอยู่ที่ไม่ได้ใช้งานที่เสถียรหรือไม่อัปเดตในแอปพลิเคชันด้วยเหตุผลบางประการ มันเรียกเหตุการณ์ทั้งหมดที่ค้างอยู่โดยไม่มีการประมวลผลเหตุการณ์อื่น ๆ หรือการเรียกกลับ
เมธอด update() และ update_idletask() มีประโยชน์สำหรับการประมวลผลงานที่ค้างอยู่หรือไม่ได้ใช้งาน อย่างไรก็ตาม ข้อแตกต่างระหว่าง update() และ update_idletasks() นั่นคือ update() ประมวลผลเหตุการณ์ทั้งหมดที่มีอยู่ในแอปพลิเคชันในขณะที่ update_idletasks() ประมวลผลเฉพาะเหตุการณ์ที่ไม่ทำงานหรือเสถียรเท่านั้น
ตัวอย่าง
เราสามารถเข้าใจการใช้งานและการประยุกต์ใช้ update_idletasks() ผ่านตัวอย่างนี้
# Import the tkinter library from tkinter import * from tkinter import ttk import time # Create an instance of tkinter frame win= Tk() # Set the size of the Tkinter window win.geometry("700x350") def add_Text(): for i in range(10): label.config(text= "The loops starts from 1 to "+ str(i)) # Wait for two seconds win.update_idletasks() time.sleep(2) label.config(text= i) # Add a label text label= Label(win, text="Original Text", font= ('Aerial 16')) label.pack(pady= 30) # Add a button to update the Label text ttk.Button(win, text="Change Text", command= add_Text).pack(pady= 40) win.mainloop()
ผลลัพธ์
การเรียกใช้โค้ดด้านบนจะแสดงหน้าต่างพร้อมวิดเจ็ตป้ายกำกับและปุ่ม
เมื่อเรากดปุ่ม วิดเจ็ตป้ายกำกับจะได้รับการอัปเดตโดยอัตโนมัติในช่วงลูปที่กำหนด