Tkinter Progressbar start/step/stop 方法
这几个方法的含义如下。
(1)start(interval)
:每隔interval时间移动一次指针。interval的默认值是50ms,每次指针移动调用一次step(delta)。在step( )方法内的delta参数的意义是增值量。
(2)step(delta)
:每次增加一次delta,默认值是1.0,在determinate模式,指针不会超过maximum参数值。在indeterminate模式,当指针达到maximum参数值的前一格时,指针会回到起点。
(3)stop()
:停止start( )的运行。
示例1
验证使用step(2)方法,相当于每次增值2,当指针到达末端值100前一格时(相当于是98),指针会回到0,然后重新开始移动。这个程序执行时同时在Python Shell窗口中会列出目前指针的值。
from tkinter import *
from tkinter.ttk import *
import time
def running(): # 开始Progressbar动画
while pb.cget("value") <= pb["maximum"]:
pb.step(2)
root.update() # 更新画面
print(pb.cget("value")) # 打印指针值
time.sleep(0.05)
root = Tk()
root.title("apidemos.com")
pb = Progressbar(root,length=200,mode="determinate",orient=HORIZONTAL)
pb.pack(padx=10,pady=10)
pb["maximum"] = 100
pb["value"] = 0 # Progressbar初始值
btn = Button(root,text="Running",command=running)
btn.pack(pady=10)
root.mainloop()
输出:
示例2
使用start( )方法启动Progressbar的动画,当单击Stop按钮后才可中止此动画。
from tkinter import *
from tkinter.ttk import *
def run(): # 开始Progressbar动画
print("run() Executed!!!")
pb.start() # 指针每次移动1
def stop(): # 终止Progressbar动画
print("stop() Executed!!!")
pb.stop() # 终止pb对象动画
root = Tk()
root.title("apidemos.com")
pb = Progressbar(root,length=200,mode="determinate",orient=HORIZONTAL)
pb.pack(padx=5,pady=10)
pb["maximum"] = 100
pb["value"] = 0
btnRun = Button(root,text="Run",command=run) # 创建Run按钮
btnRun.pack(side=LEFT,padx=5,pady=10)
btnStop = Button(root,text="Stop",command=stop) # 创建Stop按钮
btnStop.pack(side=LEFT,padx=5,pady=10)
root.mainloop()
输出: