我试图制作简单的程序来打印"完成"当进度条使用ttk达到最大值时到控制台。
示例:
from tkinter import *
import tkinter.ttk
root = Tk()
pb = tkinter.ttk.Progressbar(root, orient=HORIZONTAL, length=200, mode='determinate')
pb.pack()
pb.start()
if pb['value'] == 100: #This isn't correct it's just an example.
pb.stop()
print("Done")
root.mainloop()
我目前正在使用python 3.5.2,请尽量避免使用类和对象,对我来说理解起来有点困难。
答案 0 :(得分:1)
您可以通过指示每100ms左右调用一次函数来自行更新值,如下所示:
from tkinter import *
import tkinter.ttk
root = Tk()
pb = tkinter.ttk.Progressbar(root, orient=HORIZONTAL, length=200, mode='determinate')
pb.pack()
def task():
pb['value'] += 1
if pb['value'] >= 99:
print("Done")
else:
root.after(100, task) # Tell the mainloop to run "task()" again after 100ms
# Tell the mainloop to run "task()" after 100ms
root.after(100, task)
root.mainloop()
您通常不会以确定模式启动()进度条,因为您应该自己更新值。在不确定模式下,条形图来回反弹意味着发生了某些事情,这就是你需要启动它的原因。