【问题标题】:Updating a tkinter progress bar in python 3.7在 python 3.7 中更新 tkinter 进度条
【发布时间】:2018-12-29 00:55:03
【问题描述】:

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

【问题讨论】:

  • 您能否发布到目前为止您尝试过的内容,或者为什么它无法转移到 Python 3?

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


【解决方案1】:

抱歉,这花了一些时间,但我搞定了。

我不知道您遇到了什么与 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 就可以了。

【讨论】:

    猜你喜欢
    • 2018-11-02
    • 1970-01-01
    • 2021-07-11
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    相关资源
    最近更新 更多