python – tkinter和time.sleep
作者:互联网
我试图在等待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()
解决方法:
你真的应该使用像Tkinter after method这样的东西,而不是time.sleep(…).
有一个在other stackoverflow 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()
标签:python,time,tkinter,sleep,elapsedtime 来源: https://codeday.me/bug/20190915/1806254.html