如何使用Python中的Tkinter创建一个自动更新的GUI?


GUI窗口包含许多控件,例如标签、按钮、文本框等。有时我们可能希望在查看窗口时,控件的内容(例如标签)能够自动更新。

我们可以使用**after()**方法在一段时间后运行一个函数。例如,1000毫秒表示1秒。我们连续调用一定时间间隔后调用的函数将更新文本或任何您希望发生的更新。

我们的窗口上有一个标签。我们希望标签的文本在1秒后自动更新。为了简化示例,假设我们希望标签显示0到1000之间的某个数字。我们希望这个数字每1秒改变一次。

我们可以通过定义一个函数来实现这一点,该函数将标签的文本更改为0到1000之间的某个随机数。我们可以使用after()方法在1秒的间隔后连续调用此函数。

示例

from Tkinter import *
from random import randint
root = Tk()
lab = Label(root)
lab.pack()

def update():
   lab['text'] = randint(0,1000)
   root.after(1000, update) # run itself again after 1000 ms

# run first time
update()

root.mainloop()

这将每1000毫秒自动将标签的文本更改为一个新数字。您可以根据需要更改时间间隔。可以修改update函数以执行所需的更新。

root.after(1000,update)

这行代码执行了重新调用update()函数的主要功能。

root.after()中的第一个参数指定希望函数重新调用的毫秒时间间隔。

第二个参数指定要重新调用的函数的名称。

更新于:2021年3月11日

14K+ 次浏览

启动你的职业生涯

通过完成课程获得认证

开始
广告