Ich versuche eine GUI zu erstellen, wo der Benutzer auf eine Schaltfläche klickt und die App eine Datei aus dem Internet herunterlädt. Ich möchte einen Fortschrittsbalken haben, der anzeigt, wie lange der Download der Datei abgeschlossen ist. Um dies zu erreichen, habe ich einen Thread implementiert, um die Funktion des Fortschrittsbalkens auszuführen, wenn auf den Download-Button geklickt wird. Hier ist der Code Ich verwende:Download Fortschrittsbalken funktioniert nicht, Python 3
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
Wenn ich die Anwendung ausführen, es lädt die Datei und keine Fehler kommen. Aber der Fortschrittsbalken tut nichts. Ich versuchte mit progress.update()
und progress.update_idletask()
aber der Fortschrittsbalken funktionierte immer noch nicht.
Wie kann ich die Fortschrittsleiste erhalten, um den Download-Fortschritt der Datei anzuzeigen?
Sie haben Blocknum und blocksize innerhalb der Schleife keine Werte zugewiesen, also bleiben sie immer bei 0. –