在python 3.7中更新tkinter进度栏

时间:2018-12-29 00:55:04

标签: python python-3.x tkinter progress-bar

我是python开发的新手,因此在寻找有关此问题的资源时遇到了一些问题。我正在尝试创建一个以自己的GUI打开的进度条。我听说最好的方法是使用tkinter,但是我发现所有解释如何做到这一点的资源都是针对python 2.x,而不是转移到python 3。能够调用将自动更新进度条的功能。即myBar.updateProgress(76),其中myBar是当前progressBar对象,而76%是进度条到完成的距离。如果有人可以帮助我,将不胜感激。

1 个答案:

答案 0 :(得分:0)

对不起,花了一段时间,但我能解决这个问题。

我不知道您遇到的内容与Python 3.x不兼容,但是我发现了我跟随的这个新视频。

https://www.youtube.com/watch?v=cvBRhYeO7hc

除了无法执行的“停止”命令以外,它几乎可以正常工作。

from tkinter import *
from tkinter import ttk
import time

root = Tk()
root.title('Progress Bar')
root.geometry("640x400")

def run():
  progressBar['maximum'] = 100
  for i in range(101):
    time.sleep(0.05)
    progressBar["value"] = i
    progressBar.update()
    progressBar["value"] = 0

buttonFrame = LabelFrame(text="Progress Bar")
buttonFrame.grid(column=0,row=0)

button1 = Button(buttonFrame, text="Run Progress Bar",command=run)
button1.grid(column = 0, row = 0)

progressBar = ttk.Progressbar(root, orient="horizontal", length=286,mode="determinate")
progressBar.grid(column = 0, row = 3, pady=10)

root.mainloop()

尝试将其分开,如果不是您想要的,我将需要您自己的代码来弄清楚您的想法。

过早退出似乎会引发错误,但没有任何内容无法摘录。

编辑:我刚刚意识到您希望能够使用一个功能对其进行编辑,这应该可以工作:

def update_prog(v):
  progressBar["value"] = v

((我尚未对此进行测试,但是它应该可以工作,如果您删除RUN函数,并确保在某处具有progressBar [“ maximum”] = X,那么就可以了。