Tkinter进度条在10秒后停止

时间:2014-01-29 22:28:20

标签: tkinter progress-bar ttk

我在我的UI的弹出窗口中使用Progressbar来通知用户必须等待10秒才能使用UI执行其他操作。

如何添加睡眠(10)或与代码类似的东西,以免它被卡住?

window3 = Toplevel(self) 
self.textoBar = Label(window3, text="Doing stuff, please, wait 5 seconds")
self.textoBar.grid(row=0, column=0, pady=(5,5))
self.progressbar = ttk.Progressbar(window3, orient = HORIZONTAL, mode = 'indeterminate',length=250)
self.progressbar.grid(row=1, column=0, pady=(5,5))
self.progressbar.start()
# wait 10 seconds
self.progressbar.stop()
window3.destroy()

提前致谢。

1 个答案:

答案 0 :(得分:3)

使用after安排将来运行的功能。第一个参数是以毫秒为单位的时间量,第二个参数是可调用函数。

def stop_progressbar(self):
    self.progressbar.stop()

self.after(10000, self.stop_progressbar)

当然,您需要以类似的方式或window3.destroy函数调用stop_progressbar函数,以便在系统等待停止进度条时它不会运行。