1、说明
由于tkinter一旦开始执行进入mainloop,就相当于进入一个界面死循环状态,出不来;如果想做定时刷新tkinter界面的控件数据,必须调用tkinter.TK()自带的after函数,这个函数可以设定定时执行某个任务的时间,使用别的python定时执行任务的模块是不行的。
2、使用方式
实现一个刷新数据函数调用tkinter.TK()自带的after函数,在调用mainloop函数之前,将这个刷新数据函数调用,则可以实现定时刷新数据功能,参考代码如下:
import tkinter as tk
class Questions(tk.Tk):
def __init__(self, *args, **kw):
super().__init__()
self.wm_title('CSSE1001 Queue')
self.configure(background='white')
self.wm_minsize(1440, 776) # 设置窗口最小化大小
self.wm_maxsize(1440, 2800) # 设置窗口最大化大小
self.resizable(width=False, height=True) # 设置窗口宽度不可变,高度可变
self.run()
self.refresh_data()
self.mainloop()
def refresh_data(self):
# 需要刷新数据的操作
# 代码...
self.after(10000