我正在用Progressbar用tkinter编写一个程序。但当我添加停止功能时,出现了一个问题,它不起作用。当我按下“停止”按钮时,什么也没有发生,它应该停止加载进度条。我使用Python版本3.8。代码如下:
from tkinter import *
from tkinter import ttk
import time
root = Tk()
def run():
pb['maximum']=100
for i in range(101):
time.sleep(0.05)
pb['value']=i
pb.update()
def stop():
pb.stop()
runbutt = Button(root,text="Runprogr",command=run)
runbutt.pack()
stopbutt = Button(root,text="Stopbut",command=stop)
stopbutt.pack()
pb = ttk.Progressbar(root,length=300,orient="horizontal")
pb.pack()
root.geometry("300x300")
root.mainloop()
原因是
pb.stop
无法停止run
中的函数。它本身也会增加您可以使用
.after(ms, callback)
来添加值(这样您就不再需要使用time.sleep()
)如果要停止,请使用
.after_cancel()
:相关问题 更多 >
编程相关推荐