ทั้งสองเมธอดใช้สำหรับประมวลผล event queue ที่ค้างอยู่ แต่มีขอบเขตต่างกัน:
- update(): ประมวลผล ทุกอย่าง ใน event queue - idle tasks, events, callbacks, redraw widgets, geometry management. ใช้บ่อยครั้งอาจทำให้ UI ค้าง
- update_idletasks(): ประมวลผลเฉพาะ idle tasks ที่ค้างอยู่ (เช่นการจัด layout, redraw) ไม่ประมวลผล event callbacks ปลอดภัยกว่า
ตัวอย่างการใช้ update_idletasks()
from tkinter import *
from tkinter import ttk
import time
win = Tk()
win.geometry("700x350")
def add_text():
for i in range(10):
label.config(text=f"The loops starts from 1 to {i}")
win.update_idletasks() # อัปเดตเฉพาะ idle tasks
time.sleep(2)
label.config(text=str(i))
label = Label(win, text="Original Text", font=('Arial 16'))
label.pack(pady=30)
ttk.Button(win, text="Change Text", command=add_text).pack(pady=40)
win.mainloop()
ผลลัพธ์
Label อัปเดตทีละข้อความในลูป พร้อมหน่วงเวลา 2 วินาที

