Python Tkinter中的after方法

Python Tkinter中的after方法

Tkinter是一个制作GUI的python库。它有很多内置方法来创建和操作GUI窗口和其他小部件来显示数据和GUI事件。在本文中,我们将看到如何在Tkinter GUI中使用after方法。

语法

.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 = ['周一', '周二', '周三', '周四', '周五','周六','周日']
#以随机顺序一个接一个地显示单词。
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中的after方法

再次运行相同的程序,我们将看到显示不同顺序的单词的结果。

Python Tkinter中的after方法

停止处理

在下一个示例中,我们将看到如何将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('处理开始……')

begin = time()

base.after(3000, base.destroy)

mainloop()

conclusion = time()
print('处理在 % d 秒内被破坏' % ( conclusion-begin))

运行上述代码会给我们带来以下结果:

处理开始…
处理在 3 秒内被破坏

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程