赞
踩
tk.after(time,fun)
其中time是每次循环的间隔时间,单位为毫秒(ms),fun为每次循环调用的函数,实现你想执行的刷新效果
现在通过一段简单的代码来展示after函数,该代码的作用是实现一个更新当前时间的变迁
import tkinter as tk from tkinter import * import time as cur_time class MainWindow(tk.Tk): def __init__(self, *args, **kw): super().__init__() self.geometry("730x400+700+400") # 设置窗口长宽和坐标 # 窗口标题 self.title('Label') # 初始按钮,后面会被覆盖 self.label1 = Label(self, text='', width=70, height=10) # 设置按钮位置 self.label1.grid(row=0, column=1) # 调用after函数 self.after(100, self.refresh_data) # 窗口显示 self.mainloop() def refresh_data(self): print('我在刷新') # 需要刷新数据的操作,从time函数活的当前时间 self.label1 = Label(self, text=cur_time.time(), font=18, relief="solid", width=25, height=5, padx=2) self.label1.grid(row=0, column=1, padx=15, pady=20) # 递归循环调用after self.after(100, self.refresh_data) # 这里的100单位为毫秒 if __name__ == '__main__': MainWindow = MainWindow()
可以看到标签的内容一直在变化
after函数的调用并不难,只要多练习一下就能掌握
另外,Tk类提供的after方法不是循环的计时器,该函数相当于不会堵塞进程的sleep,需要循环计时的话,就再在函数里面再次调用after
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。