Python time.sleep

Cri*_*spy 9 python time sleep tkinter elapsedtime

我试图在等待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()
Run Code Online (Sandbox Code Playgroud)

srg*_*erg 14

你真的应该在方法之后使用类似Tkinter的东西而不是time.sleep(...).

另一个stackoverflow问题中有一个使用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()
Run Code Online (Sandbox Code Playgroud)