我希望在Tkinter中实现一个进度条,具备以下要求:
- 进度条是主窗口中唯一的元素
- 可以通过启动命令开始,不需要按任何按钮
- 能够等待一个未知持续时间的任务完成
- 只要任务未完成,进度条的指示器就会持续移动
- 可以通过停止命令关闭,不需要按任何停止条
import Tkinter
import ttk
import time
def task(root):
root.mainloop()
root = Tkinter.Tk()
ft = ttk.Frame()
ft.pack(expand=True, fill=Tkinter.BOTH, side=Tkinter.TOP)
pb_hD = ttk.Progressbar(ft, orient='horizontal', mode='indeterminate')
pb_hD.pack(expand=True, fill=Tkinter.BOTH, side=Tkinter.TOP)
pb_hD.start(50)
root.after(0,task(root))
time.sleep(5) # to be replaced by process of unknown duration
root.destroy()
这里的问题是进度条在5秒结束后没有停止。
有人能帮我找到错误吗?
sys.exit()
也会关闭主程序。现在唯一的问题是,上面的代码会打开一个包含状态栏的新Tkinter窗口,该窗口在状态栏停止后不会关闭。代码本身运行没有错误。 - Ricksonprocess_of_unknown_duration
完成后可以执行sys.exit()
。 - Rickson