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()


jeck猫
浏览 279回答 1
1回答

MYYA

您确实应该使用Tkinter after方法而不是time.sleep(...)。在另一个stackoverflow问题中有一个使用after方法的示例。这是使用after方法的脚本的修改版本:from time import time, sleepfrom 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()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python