我试图创建一个简单的程序来监控在Tkinter窗口中显示的数据并每秒刷新一次。我正在使用的方法在程序运行时在刷新周期中产生不断增加的延迟。
这是计数器形式的方法的超简化表示。虽然循环以每循环一秒的预期速率开始,但即使在几分钟后循环时间也明显变慢。任何消除这种滞后积累的建议都将受到高度赞赏。非常感谢!
from tkinter import *
i=0
root = Tk()
root.title("Simple Clock")
root.configure(background="black")
def Cycle():
global i
Label(root, text="------------------------", bg="black", fg="black").grid(row=0, column=0, sticky=W)
Label(root, text = i, bg="black", fg="gray").grid(row=0, column=0, sticky=W)
i += 1
root.after(1000,Cycle)
root.after(1000,Cycle)
root.mainloop()
答案 0 :(得分:1)
每次调用都停止创建新对象。相反,只更新更改的部分。对于上面的代码,它将更新第二个标签的文本:
from tkinter import *
def Cycle():
global i
labels[1]['text'] = i
i += 1
root.after(1000,Cycle)
i=0
root = Tk()
root.title("Simple Clock")
root.configure(background="black")
labels = list()
labels.append(Label(root, text="------------------------", bg="black", fg="black"))
labels.append(Label(root, bg="black", fg="gray"))
for j in range(len(labels)):
labels[j].grid(row=0, column=0, sticky=W)
root.after(1000,Cycle)
root.mainloop()