2024-09-29 21:39:39 发布
网友
我想显示一条信息说“嗨” 几秒钟后,我希望那条信息消失,打开一个不同的文件 https://hastebin.com/uhafehizok.vbs 所以如果它是真的,我希望它放置标签,等待两秒钟,然后销毁它,但是Tkinter窗口等待两秒钟开始,然后没有任何标签开始 有什么想法吗
在您的代码中,标签被放置,2秒后被销毁。它从来没有真正显示在您的窗口,但因为它没有更新。 这就像输入Tk的mainloop时,它在循环中更新窗口,检查是否进行了更改。在您的例子中,您使用time.sleep来阻止此检查。你知道吗
mainloop
time.sleep
对于Tkinter,当需要计时时,应该始终使用after方法,按照Tkinter的主循环安排所有事情(这使用毫秒)。你知道吗
after
要修复代码,可以在放置标签后添加root.update()。time.sleep仍然会在主循环等待时冻结它,因此更好的解决方案是删除对睡眠的调用,而是在2秒后调用标签上的destroy。你知道吗
root.update()
destroy
这看起来像root.after(2000, letsgolabel.destroy)。你知道吗
root.after(2000, letsgolabel.destroy)
*注意,我一直将root称为对tk.Tk()的访问,因为这是通常使用的。你知道吗
tk.Tk()
在您的代码中,标签被放置,2秒后被销毁。它从来没有真正显示在您的窗口,但因为它没有更新。 这就像输入Tk的
mainloop
时,它在循环中更新窗口,检查是否进行了更改。在您的例子中,您使用time.sleep
来阻止此检查。你知道吗对于Tkinter,当需要计时时,应该始终使用
after
方法,按照Tkinter的主循环安排所有事情(这使用毫秒)。你知道吗要修复代码,可以在放置标签后添加
root.update()
。time.sleep
仍然会在主循环等待时冻结它,因此更好的解决方案是删除对睡眠的调用,而是在2秒后调用标签上的destroy
。你知道吗这看起来像
root.after(2000, letsgolabel.destroy)
。你知道吗*注意,我一直将root称为对
tk.Tk()
的访问,因为这是通常使用的。你知道吗相关问题 更多 >
编程相关推荐