Tkinter เป็นไลบรารี Python สำหรับสร้าง GUI มีเมธอดในตัวมากมายสำหรับสร้างและจัดการหน้าต่าง GUI และวิดเจ็ตอื่นๆ เพื่อแสดงข้อมูลและเหตุการณ์ GUI ในบทความนี้เราจะดูวิธีใช้เมธอด after ใน Tkinter GUI
ไวยากรณ์
.after(delay, FuncName=FuncName) เมธอดนี้เรียกฟังก์ชัน FuncName หลังจากหน่วงเวลาที่กำหนดเป็นมิลลิวินาที
การแสดงวิดเจ็ต
ที่นี่เราสร้างเฟรมเพื่อแสดงรายการคำสุ่ม เราใช้ไลบรารี random ร่วมกับเมธอด after เพื่อเรียกฟังก์ชันแสดงรายการข้อความที่กำหนดแบบสุ่ม
ตัวอย่าง
import random
from tkinter import *
base = Tk()
a = Label(base, text="After() Demo")
a.pack()
contrive = Frame(base, width=450, height=500)
contrive.pack()
words = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
# แสดงวันในสัปดาห์สุ่มทีละคำ
def display_weekday():
if not words:
return
rand = random.choice(words)
character_frame = Label(contrive, text=rand)
character_frame.pack()
contrive.after(500, display_weekday)
words.remove(rand)
base.after(0, display_weekday)
base.mainloop()
การรันโค้ดข้างต้นจะให้ผลลัพธ์ดังนี้:

เมื่อรันโปรแกรมเดิมอีกครั้ง จะได้ลำดับคำที่ต่างกัน

การหยุดการประมวลผล
ในตัวอย่างต่อไปเราจะดูวิธีใช้เมธอด after เป็นกลไกหน่วงเวลา เพื่อรอให้กระบวนการทำงานเป็นเวลาจำนวนหนึ่งแล้วหยุดกระบวนการ เรายังใช้เมธอด destroy เพื่อหยุดการประมวลผล
ตัวอย่าง
from tkinter import Tk, mainloop, TOP
from tkinter.ttk import Button
from time import time
base = Tk()
stud = Button(base, text='After Demo()')
stud.pack(side=TOP, pady=8)
print('processing Begins...')
begin = time()
base.after(3000, base.destroy)
mainloop()
conclusion = time()
print('process destroyed in %d seconds' % (conclusion - begin))
การรันโค้ดข้างต้นจะให้ผลลัพธ์ดังนี้:
processing Begins... process destroyed in 3 seconds
สรุป: เมธอด after มีประโยชน์สำหรับการ排程งาน (scheduling) และการหน่วงเวลาในแอปพลิเคชัน Tkinter