我正在尝试制作一个GUI,用户点击一个按钮,应用程序就会从互联网下载一个文件。我想要一个进度条,显示文件下载完成的时间。为了实现这一点,我实现了一个线程,在点击下载按钮时运行进度条的功能。以下是我使用的代码:
def progthread():
threading.Thread(target=download).start()
def download():
blocknum = 0
blocksize = 0
url = "https://www.python.org/static/img/python-logo.png"
filename = "C:\My Python Apps\MyFile.png"
response = requests.get(url, stream=True)
total_length = response.headers.get('content-length')
with open(filename, "wb") as f:
for data in response.iter_content(chunk_size=10000):
f.write(data)
percent = int(blocknum * blocksize / int(total_length))
progress['value'] = percent
当我运行应用程序时,它会下载文件,不会出现错误。但是进度条什么也做不了。我试着使用progress。更新()
和进度。更新_idletask()
,但进度条仍不工作。
如何让progressbar显示文件的下载进度?
问题是你的循环阻塞了tkinter的主循环,所以整个GUI都被锁定了。对于这种情况,您应该在单独的线程中启动下载循环,以便它可以与tkinter Main循环同时运行。可以使用tkinter IntVar从另一个线程更新进度条。
如果你用一个最小的、完整的、可验证的例子来更新你的问题,那么我可以帮助你实现这一点。
我向服务器发出POST请求以生成CSV文件,POST请求的响应是我要写入文件的CSV数据。 我永远不知道CSV文件的大小(它可以是10MB,100MB或1000MB),因此没有内容长度的头。 我已经编写了一个函数,可以下载并向服务器发出POST请求,生成CSV文件并将响应写入CSV文件。然而,我正在努力与进步吧。 如何添加进度条?
我正在通过企业分发开发和分发iPad应用程序。他们下载并执行得很好,所以一切都正常(网络链接、ipa文件、plist文件、供应…)。 “问题”是当用户点击链接下载时,iPad中显示下载进度的进度条上写着“等待…”,但是空的,从不改变。当它完成时,它变为“安装…”,然后它正确地显示安装进度。 对于小型应用程序,这并不是真正的问题,但对于大型应用程序,它会让用户认为什么都没有发生。 有没有办法显示下载
我使用下载管理器api下载大文件,我也实现了。但问题是,下载进度通知显示在状态栏中。但是我想用进度条在活动中显示通知。有人做过吗,如果有请帮帮我。
我带着我的下一个问题来找你xd这是我的JS: 为什么不使用“addClass(”d-block“)函数呢?但是我的”else“很好。 这是我的HTML
fetch 方法允许去跟踪 下载 进度。 请注意:到目前为止,fetch 方法无法跟踪 上传 进度。对于这个目的,请使用 XMLHttpRequest,我们在后面章节会讲到。 要跟踪下载进度,我们可以使用 response.body 属性。它是 ReadableStream —— 一个特殊的对象,它可以逐块(chunk)提供 body。在 Streams API 规范中有对 ReadableStr
我的kivy应用程序中有一个ProgressBar。我相信我需要使用,以确保从循环内部更新进度条。 以下代码是用于再现性目的的淡化版本。 ProgressBar类 主要类别: KV文件 此示例显示loading_pb.value按钮单击后代码循环时发生的变化。 进步吧。价值印刷输出 问题进度条的值似乎确实如预期的那样递增,但实际进度条直到循环结束时才立即改变。 相关的 无法更新kivy进度条 ki