J'essaie de créer une interface graphique où l'utilisateur clique sur un bouton et l'application télécharge un fichier à partir d'Internet. Je veux avoir une barre de progression indiquant combien de temps le téléchargement du fichier est terminé. Pour ce faire, j'ai implémenté un thread pour exécuter la fonction de la barre de progression lorsque le bouton de téléchargement est cliqué. Voici le code que j'utilise:Télécharger la barre de progression ne fonctionne pas, 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
Lorsque j'exécute l'application, elle télécharge le fichier et aucune erreur ne survient. Mais la barre de progression ne fait rien. J'ai essayé d'utiliser progress.update()
et progress.update_idletask()
mais la barre de progression ne fonctionnait toujours pas.
Comment puis-je obtenir la barre de progression pour afficher la progression du téléchargement du fichier?
Vous n'avez pas assigné de valeurs à blocknum et blocksize dans la boucle, donc ils sont toujours bloqués à 0. –