如何解决运行时不更新进度条
我是新来的,我正在努力学习 Python。我在打印值期间更新进度条时遇到问题。 i 到 100 结束时,我的进度条直接从 0 更新到 100。是否可以在每次打印一个值后更新进度条?我的目标是查看计数进展了多远。这是我的代码:
from tkinter import *
from tkinter import ttk
def step():
progressbar['value']=0
for i in range(1,100):
print(i)
progressbar['value']+=20
master=Tk()
progressbar=ttk.Progressbar(master,orient="horizontal",length=300,mode="determinate")
progressbar['maximum']=100
progressbar.pack()
button=Button(master,text="Count",command=step)
button.pack()
master.mainloop()
如果有人能帮助我解决这个问题,我将不胜感激。
解决方法
i 到 100 结束时,我的进度条直接从 0 更新到 100。
它确实有明显的可能性,但速度太快了,你看不到它。请添加import time
并替换
def step():
progressbar['value']=0
for i in range(1,100):
print(i)
progressbar['value']+=20
使用
def step():
progressbar['value']=0
for i in range(1,100):
print(i)
progressbar['value']+=1
time.sleep(1.0)
然后运行你的代码并写下进度条是否从 0 平滑地运行到 100 或仍然跳到 100?
,这就行了。
# coding: utf-8
from tkinter import *
from tkinter import ttk
import time
master = Tk() # I have taken this one to start of program.
def step():
progressbar['value']=0
for i in range(1,100):
print(i)
progressbar['value']+=1
master.update_idletasks() # Update all the geometry related tasks etc. and calls all pending tasks. You require this too with time.
time.sleep(0.05) # Lesser value means fast,higher value means slow
progressbar=ttk.Progressbar(master,orient="horizontal",length=300,mode="determinate")
progressbar['maximum']=100
progressbar.pack()
button=Button(master,text="Count",command=step)
button.pack()
master.mainloop()
,
对大威回答的反应:
正如你在这里看到的,我的窗口在打印值时冻结了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。