Tkinter เป็นไลบรารี่หลามสำหรับสร้าง GUI มีวิธีการมากมายในการสร้างและจัดการหน้าต่าง GUI และวิดเจ็ตอื่น ๆ เพื่อแสดงข้อมูลและเหตุการณ์ GUI ในบทความนี้เราจะมาดูกันว่าเมธอด after ถูกใช้อย่างไรใน Tkinter GUI
ไวยากรณ์
.after(delay, FuncName=FuncName) This method calls the function FuncName after the given delay in milisecond
แสดงวิดเจ็ต
ที่นี่เราสร้างกรอบเพื่อแสดงรายการคำแบบสุ่ม เราใช้ไลบรารีสุ่มพร้อมกับเมธอด 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'] #Display words randomly one after the other. 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 เป็นกลไกการหน่วงเวลาเพื่อรอให้กระบวนการทำงานเป็นระยะเวลาหนึ่งแล้วหยุดกระบวนการได้อย่างไร เรายังใช้วิธีทำลายเพื่อหยุดการประมวลผล
ตัวอย่าง
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