gpt4 book ai didi

python - 当我将 update() 与 tkinter 一起使用时,我的 Label 会写另一行而不是重写相同的文本

转载 作者:太空狗 更新时间:2023-10-29 22:11:50 24 4
gpt4 key购买 nike

当我使用 tkinter 调用 update() 方法而不是重写标签时,它只是在之前的调用下写入标签。我希望重写前一行。

例如:

root=Tk()
while True:
w=Label(root, text = (price, time))
w.pack()
root.update()

最佳答案

您的问题很简单:当您执行 while True 时,您创建了一个无限循环。该循环中的代码将一直运行,直到您强制程序退出。在该循环中,您创建 一个标签。因此,您将创建无限数量的标签。

如果您想定期更新标签,请利用已经在运行的无限循环 - 事件循环。您可以使用 after 来安排将来调用的函数。该函数可以重新安排自己再次运行,保证它会运行直到程序退出。

这是一个简单的例子:

import Tkinter as tk
import time

class SampleApp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
self.clock = tk.Label(self, text="")
self.clock.pack()

# start the clock "ticking"
self.update_clock()

def update_clock(self):
now = time.strftime("%H:%M:%S" , time.gmtime())
self.clock.configure(text=now)
# call this function again in one second
self.after(1000, self.update_clock)

if __name__== "__main__":
app = SampleApp()
app.mainloop()

关于python - 当我将 update() 与 tkinter 一起使用时,我的 Label 会写另一行而不是重写相同的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7573031/

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