หน้าต่าง GUI มีการควบคุมหลายอย่าง เช่น ป้ายกำกับ ปุ่ม กล่องข้อความ ฯลฯ บางครั้งเราอาจต้องการให้เนื้อหาในการควบคุมของเรา เช่น ป้ายกำกับอัปเดตโดยอัตโนมัติในขณะที่เรากำลังดูหน้าต่าง
เราสามารถใช้ after() เพื่อเรียกใช้ฟังก์ชันหลังจากช่วงเวลาหนึ่ง ตัวอย่างเช่น 1,000 มิลลิวินาทีหมายถึง 1 วินาที ฟังก์ชันที่เราเรียกใช้อย่างต่อเนื่องหลังจากผ่านไประยะหนึ่งจะอัปเดตข้อความหรือการอัปเดตใดๆ ที่คุณต้องการให้เกิดขึ้น
เรามีป้ายบนหน้าต่างของเรา เราต้องการให้ข้อความของฉลากอัปเดตโดยอัตโนมัติหลังจากผ่านไป 1 วินาที เพื่อให้ตัวอย่างง่าย สมมติว่าเราต้องการให้ป้ายกำกับแสดงตัวเลขระหว่าง 0 ถึง 1,000 เราต้องการให้ตัวเลขนี้เปลี่ยนทุกๆ 1 วินาที
เราสามารถทำได้โดยกำหนดฟังก์ชันที่จะเปลี่ยนข้อความของป้ายกำกับเป็นตัวเลขสุ่มระหว่าง 0 ถึง 1000 เราสามารถเรียกใช้ฟังก์ชันนี้อย่างต่อเนื่องหลังจากช่วงเวลา 1 วินาทีโดยใช้ after()
ตัวอย่าง
from Tkinter import * from random import randint root = Tk() lab = Label(root) lab.pack() def update(): lab['text'] = randint(0,1000) root.after(1000, update) # run itself again after 1000 ms # run first time update() root.mainloop()
การดำเนินการนี้จะเปลี่ยนข้อความของป้ายกำกับเป็นตัวเลขใหม่โดยอัตโนมัติหลังจากผ่านไป 1,000 มิลลิวินาที คุณสามารถเปลี่ยนช่วงเวลาได้ตามต้องการ ฟังก์ชันอัปเดตสามารถปรับเปลี่ยนเพื่อดำเนินการอัปเดตที่จำเป็นได้
root.after(1000,update)
บรรทัดของรหัสนี้ทำหน้าที่หลักในการเรียกคืนฟังก์ชัน update()
พารามิเตอร์แรกใน root.after() ระบุช่วงเวลาเป็นมิลลิวินาทีหลังจากที่คุณต้องการให้ฟังก์ชันถูกเรียกคืน
พารามิเตอร์ที่สองระบุชื่อของฟังก์ชันที่จะเรียกคืน