Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

หลังจากเมธอดใน Python Tkinter


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()

การเรียกใช้โค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้:

หลังจากเมธอดใน Python Tkinter

ในการรันโปรแกรมเดิมอีกครั้ง เราได้ผลลัพธ์ที่แสดงลำดับของคำที่ต่างกัน

หลังจากเมธอดใน Python Tkinter

หยุดการประมวลผล

ในตัวอย่างต่อไป เราจะมาดูกันว่าเราสามารถใช้เมธอด 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