Python Tkinter 中的 after 方法
pythonserver side programmingprogramming
Tkinter 是一个用于制作 GUI 的 Python 库。它有许多内置方法来创建和操作 GUI 窗口和其他小部件以显示数据和 GUI 事件。在本文中,我们将了解如何在 Tkinter GUI 中使用 after 方法。
语法
.after(delay, FuncName=FuncName) 此方法在给定的毫秒延迟后调用函数 FuncName
显示小部件
在这里我们制作一个框架来随机显示单词列表。我们使用随机库和 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 方法作为延迟机制,等待进程运行一段时间,然后停止该进程。我们还使用 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