【问题标题】:tkinter and time.sleeptkinter 和 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()

【问题讨论】:

    标签: python time tkinter sleep elapsedtime


    【解决方案1】:

    您确实应该使用 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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-15
      • 2018-05-17
      • 1970-01-01
      • 1970-01-01
      • 2016-08-17
      • 2019-11-05
      相关资源
      最近更新 更多