tkinter 和 time.sleep
Posted
技术标签:
【中文标题】tkinter 和 time.sleep【英文标题】:tkinter and time.sleep 【发布时间】:2012-05-10 18:07:06 【问题描述】:我试图在等待 5 秒后删除文本框中的文本,但程序不会运行并且会在其他所有内容上休眠。还有没有办法让我的文本框休眠,这样我就可以在文本冻结时运行其他代码?
from time import time, sleep
from Tkinter import *
def empty_textbox():
textbox.insert(END, 'This is a test')
sleep(5)
textbox.delete("1.0", END)
root = Tk()
frame = Frame(root, width=300, height=100)
textbox = Text(frame)
frame.pack_propagate(0)
frame.pack()
textbox.pack()
empty_textbox()
root.mainloop()
【问题讨论】:
【参考方案1】:您确实应该使用 Tkinter after method 而不是 time.sleep(...)
。
other *** question 有一个使用 after 方法的例子。
这是使用 after 方法的脚本的修改版本:
from time import time, sleep
from Tkinter import *
def empty_textbox():
textbox.delete("1.0", END)
root = Tk()
frame = Frame(root, width=300, height=100)
textbox = Text(frame)
frame.pack_propagate(0)
frame.pack()
textbox.pack()
textbox.insert(END, 'This is a test')
textbox.after(5000, empty_textbox)
root.mainloop()
【讨论】:
以上是关于tkinter 和 time.sleep的主要内容,如果未能解决你的问题,请参考以下文章
简单的 Qt 小部件来绘制线条和形状(如 tkinter 画布)?
tkinter、python 和 seaborn 的问题:_tkinter.TclError: no display name and no $DISPLAY environment variable