gpt4 book ai didi

python - 如何在循环中无延迟地刷新 Tkinter 显示

转载 作者:太空宇宙 更新时间:2023-11-03 14:06:03 28 4
gpt4 key购买 nike

我正在尝试创建一个简单的程序来监视 Tkinter 窗口中显示的数据并每秒刷新一次。我当前使用的方法会在程序运行时在刷新周期中产生不断增加的滞后。

这是该方法以计数器形式的 super 简化表示。虽然循环以每个循环一秒的预期速率开始,但即使在几分钟后,循环时间也会明显变慢。任何消除这种滞后积累的建议将不胜感激。非常感谢!

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()

最佳答案

停止在每次调用时创建新对象。相反,只更新发生变化的部分。对于上面的代码,它将更新第二个标签的文本:

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()

关于python - 如何在循环中无延迟地刷新 Tkinter 显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48890382/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com