Tkinter延迟更新标签异常:窗口3秒后才显示最终文本
Tkinter Label延迟更新问题解决
你的代码核心问题出在after方法的调用上:
- 你写的
label.after(3000, update())会立刻执行update()函数,直接把Label文本改成了"World",而after方法实际接收到的是update()的返回值(None),导致窗口要等3秒才进入主循环显示,自然看不到初始的"Hello"。
修正方法很简单:去掉update后面的括号,把函数本身作为参数传递给after,这样after才会在3秒后调用这个函数:
import tkinter as tk root = tk.Tk() root.title("bruh") root.geometry("1080x720") def update(): label.config(text= "World") label = tk.Label(root, text = "Hello", font = ("Consolas", 40), width = 1080, height = 720) label.pack() # 去掉update后的括号,传递函数对象 label.after(3000, update) root.mainloop()
简单解释下Tkinter的after方法:第一个参数是延迟的毫秒数,第二个参数是要延迟执行的函数名(不带括号)。如果直接加括号,函数会被立即执行,而不是等待延迟后执行。
内容的提问来源于stack exchange,提问作者Foxxboii
相关产品推荐
相关产品推荐

