Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Phương thức after trong Python Tkinter

Tkinter là thư viện Python tạo giao diện GUI. Nó có nhiều phương thức tích hợp để tạo và thao tác cửa sổ GUI cùng các widget hiển thị dữ liệu và sự kiện. Bài này giới thiệu cách dùng phương thức after trong Tkinter.

Cú pháp

.after(delay, FuncName=FuncName)
Phương thức này gọi hàm FuncName sau độ trễ delay tính bằng mili-giây.

Hiển thị Widget

Tạo khung hiển thị danh sách từ ngẫu nhiên. Dùng thư viện random cùng after để gọi hàm hiển thị văn bản theo thứ tự ngẫu nhiên.

Ví dụ

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']

# Hiển thị từ ngẫu nhiên lần lượt
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()

Kết quả chạy chương trình (hình ảnh minh họa):

Phương thức after trong Python Tkinter

Chạy lại chương trình cho thứ tự từ khác nhau:

Phương thức after trong Python Tkinter

Dừng xử lý

Ví dụ sau dùng after làm cơ chế trễ để chờ tiến trình chạy một khoảng thời gian rồi dừng. Cũng dùng phương thức destroy để kết thúc.

Ví dụ

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

Kết quả:

processing Begins...
process destroyed in 3 seconds