Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Créer une barre de progression avec Tkinter
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement

Créer une barre de progression avec Tkinter

L'Équipe Alphorm Par L'Équipe Alphorm 3 janvier 2025
Partager
Partager

Créer un retour visuel efficace pour l’utilisateur lors de tâches longues est souvent un défi dans le développement d’interfaces graphiques.

Sans indication claire de la progression, les utilisateurs peuvent se sentir perdus ou croire que l’application est bloquée.

L’article propose l’utilisation du widget Progressbar de Tkinter pour enrichir vos interfaces graphiques, offrant une solution visuelle efficace et intuitive.

Table de matière
Barre de progression Tkinter : UtilisationPersonnaliser le widget Progressbar TkinterMise à jour dynamique : Barre interactive TkinterTkinter Progressbar : Mode indéterminé expliquéFAQConclusion

Formation Python : Interface Graphique TKinter

Créez des interfaces graphiques interactives avec Python et TKinter !

Découvrir cette formation

Barre de progression Tkinter : Utilisation

Dans le développement d’une interface graphique (GUI), il est crucial de fournir un retour visuel à l’utilisateur, en particulier lors de l’exécution de tâches longues ou complexes. Une barre de progression joue un rôle essentiel en indiquant visuellement le statut d’une opération en cours, ce qui rend l’application plus interactive et maintient l’utilisateur informé. Dans cette section, nous explorerons comment utiliser le widget Progressbar de la bibliothèque Tkinter pour enrichir vos interfaces.

Création de la barre de progression

Pour commencer, nous allons créer une fenêtre simple avec une barre de progression vide. Voici un exemple de code qui initialise l’application et affiche une barre de progression au centre :

				
					
 from tkinter import *
from tkinter import ttk
# Création de la fenêtre principale
root = Tk()
root.title("Mon application")
root.geometry("800x600+600+200")
# Création de la barre de progression
progress = ttk.Progressbar(root)
progress.pack()
# Boucle principale de l'application
root.mainloop()

				
			

En exécutant ce code, vous obtiendrez une fenêtre avec une barre de progression vide, prête à être mise à jour pour indiquer la progression d’une tâche, comme il est montré dans la figure suivante :

Fenêtre Tkinter avec barre de progression

Personnaliser le widget Progressbar Tkinter

Le widget Progressbar de Tkinter permet de contrôler plusieurs aspects de son apparence et de son comportement grâce à divers attributs. Voici les plus courants :

L’attribut value :

Cet attribut spécifie le niveau de remplissage de la barre. Par exemple, pour initialiser la barre à 30 % de remplissage, vous pouvez utiliser le code suivant :

				
					
 from tkinter import *
from tkinter import ttk
root = Tk()
root.title("Barre de progression avec value")
# Barre de progression initialisée à 30 %
progress_bar = ttk.Progressbar(root,value=30,length=200)
progress_bar.pack(pady=20)
root.mainloop()

				
			

Voici l’exemple d’exécution de ce code qui affiche une barre de progression remplie à 30 % :

Interface Tkinter avec barre de progression

L’attribut orient :

L’orientation par défaut de la barre de progression est horizontale (HORIZONTAL), mais vous pouvez la rendre verticale (VERTICAL) en changeant cet attribut :

				
					
 from tkinter import *
from tkinter import ttk
root = Tk()
root.title("Barre de progression verticale")
# Barre de progression verticale
progress_bar = ttk.Progressbar(root,orient=VERTICAL,length=200)
progress_bar.pack(pady=20)
root.mainloop()

				
			

Voici l’exemple d’exécution de ce code qui montre une barre de progression

verticale :

Code Tkinter pour barre progression verticale

length :

La longueur de la barre de progression peut être ajustée. Par défaut, elle est souvent courte, mais vous pouvez la définir à 400 pixels, par exemple :

				
					
 from tkinter import *
from tkinter import ttk
root = Tk()
root.title("Barre de progression avec longueur ajustée")
# Barre de progression avec une longueur de 400 pixels
progress_bar = ttk.Progressbar(root,length=400)
progress_bar.pack(pady=20)
root.mainloop()

				
			

Voici l’exemple d’exécution de ce code qui crée une barre de progression plus longue, avec une longueur de 400 pixels :

Code Python pour barre de progression Tkinter

Mise à jour dynamique : Barre interactive Tkinter

Mise à jour de la barre de progression

Pour rendre la barre de progression interactive, nous allons ajouter un bouton qui, à chaque clic, incrémentera la progression de la barre de 10 %. Voici un exemple de code pour illustrer cette fonctionnalité :

				
					
 from tkinter import *
from tkinter import ttk
root = Tk()
root.title("Barre de progression avec longueur ajustée")
# Barre de progression avec une longueur de 400 pixels
progress_bar = ttk.Progressbar(root,length=400)
progress_bar.pack(pady=20)
i = 0
defupdate():
global i
i += 10
progress_bar.config(value=i)
# Création du bouton et association de la fonction
button = Button(root,text="Avancer",command=update)
button.pack()
root.mainloop()

				
			

Dans cet exemple, chaque clic sur le bouton fait avancer la barre de 10 %, offrant un retour visuel immédiat à l’utilisateur. La barre se remplit progressivement, indiquant clairement l’avancement. Voici un aperçu du résultat obtenu :

Code Tkinter avec barre de progression

À chaque clic sur le bouton « Avancer », la barre progresse de 10 %, fournissant ainsi une indication visuelle continue de l’évolution de la tâche.

Affichage de la progression en pourcentage avec un Label

Pour rendre l’expérience utilisateur encore plus interactive, vous pouvez afficher la progression sous forme de pourcentage à l’aide d’un Label qui se met à jour en même temps que la barre de progression :

				
					
 from tkinter import *
from tkinter import ttk
root = Tk()
root.title("Barre de progression avec longueur ajustée")
# Barre de progression avec une longueur de 400 pixels
progress_bar = ttk.Progressbar(root,length=400)
progress_bar.pack(pady=20)
label = Label(root,text="0%")
label.pack()
i=0
defupdate():
global i
i += 10
progress_bar.config(value=i)
label.config(text=f"{i}%")
button = Button(root,text="Avancer",command=update)
button.pack()
root.mainloop()

				
			

Dans cet exemple, le Label affiche en temps réel le pourcentage de progression actuel, offrant ainsi à l’utilisateur une indication précise et intuitive de l’état d’avancement. Ce retour visuel améliore l’expérience globale de l’utilisateur en lui permettant de suivre facilement la progression de la tâche. Voici un aperçu du résultat de ce programme :

Exemple de code barre de progression Tkinter

Tkinter Progressbar : Mode indéterminé expliqué

Il arrive parfois que la durée exacte d’une tâche ne puisse être estimée à l’avance. Dans ces situations, le mode indéterminé de la barre de progression devient particulièrement utile. Ce mode permet à la barre de progression d’effectuer un mouvement de va-et-vient continu, informant ainsi l’utilisateur que le processus est en cours, même si l’avancement précis ne peut pas être déterminé. Voici comment activer ce mode :

				
					
 progress.config(mode='indeterminate')
progress.start(10)# La barre bouge toutes les 10 millisecondes

				
			

Le mouvement continu de la barre indique que l’application travaille sur une tâche en arrière-plan, sans fournir d’information précise sur l’étape atteinte ou le temps restant. Cela assure à l’utilisateur que l’application n’est pas figée. Voici un exemple complet de l’utilisation du mode indéterminé :

				
					
 import tkinter as tk
from tkinter import ttk
# Création de la fenêtre principale
root = tk.Tk()
root.title("Mode indéterminé")
# Création de la barre de progression en mode indéterminé
progress = ttk.Progressbar(root,mode='indeterminate')
progress.pack(pady=20)
# Démarrer la barre de progression en mode indéterminé
progress.start()
# Boucle principale de l'application
root.mainloop()

				
			

Cet exemple montre comment créer une barre de progression en mode indéterminé avec Tkinter. La barre de progression est initialisée avec le paramètre mode=’indeterminate’ , ce qui permet un mouvement continu de va-et-vient pour indiquer qu’un processus est en cours sans afficher d’avancement spécifique. La méthode progress.start() est utilisée pour démarrer l’animation de la barre, et l’application continue de fonctionner grâce à la boucle principale root.mainloop() .

Voici le résultat d’exécution de ce code :

Fenêtre Tkinter avec barre de progression
Infos : Pour que la barre de progression en mode indéterminé fonctionne, il est nécessaire d’utiliser la méthode progress.start() , qui lance son mouvement continu. Ce mouvement se poursuit jusqu’à ce que vous utilisiez progress.stop() ou fermiez l’application. Vous pouvez également spécifier un intervalle en millisecondes dans progress.start() pour contrôler la vitesse du mouvement. Par exemple, progress.start(50) ajuste le délai entre chaque incrément, avec un intervalle plus court pour un mouvement plus rapide et un intervalle plus long pour un mouvement plus lent.

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Comment créer une barre de progression dans Tkinter ?
Pour créer une barre de progression dans Tkinter, utilisez le widget Progressbar de la bibliothèque ttk. Commencez par importer les modules Tkinter et ttk, puis initialisez une fenêtre Tkinter. Ensuite, créez une barre de progression en utilisant ttk.Progressbar() et configurez ses paramètres, tels que la longueur et l’orientation. Enfin, intégrez la barre dans votre fenêtre avec la méthode pack() et lancez la boucle principale avec root.mainloop() pour afficher la fenêtre.
Comment personnaliser les attributs de la barre de progression ?
Personnaliser une barre de progression dans Tkinter implique de configurer ses attributs tels que ‘value’, ‘orient’ et ‘length’. L’attribut ‘value’ ajuste le niveau de remplissage, ‘orient’ détermine l’orientation (horizontale ou verticale), et ‘length’ définit la longueur en pixels. Utilisez ttk.Progressbar() pour appliquer ces attributs. Par exemple, pour une barre verticale de 200 pixels remplie à 30 %, utilisez ttk.Progressbar(root, value=30, orient=VERTICAL, length=200).
Comment mettre à jour dynamiquement une barre de progression ?
Pour mettre à jour dynamiquement une barre de progression dans Tkinter, vous pouvez utiliser un bouton pour incrémenter la valeur de progression. Créez une fonction qui ajuste l’attribut ‘value’ de la barre lorsque le bouton est cliqué. Par exemple, utilisez global pour suivre la progression et une fonction qui augmente ‘value’ de 10 % à chaque clic. Associez cette fonction à un bouton avec command=update et utilisez la méthode config() pour actualiser la barre.
Comment afficher la progression en pourcentage ?
Pour afficher la progression en pourcentage dans Tkinter, utilisez un Label qui se met à jour avec la barre de progression. Créez un Label sous la barre et mettez à jour son texte pour refléter le pourcentage actuel. Utilisez la méthode config() pour modifier le texte du Label à chaque mise à jour de la barre. Par exemple, ajoutez label.config(text=f »{i}% ») dans la fonction de mise à jour, où ‘i’ représente la progression actuelle.
Quand utiliser le mode indéterminé pour une barre de progression ?
Le mode indéterminé est utile lorsque la durée d’une tâche est inconnue dans Tkinter. Ce mode crée un mouvement continu de la barre, indiquant que le processus est en cours sans préciser le statut exact. Configurez ce mode avec progress.config(mode=’indeterminate’) et démarrez-le avec progress.start(). La barre animera un mouvement de va-et-vient, rassurant l’utilisateur sur l’activité de l’application, même sans avancement précis.

Conclusion

En intégrant une barre de progression dans vos applications Tkinter, vous améliorez l’expérience utilisateur en leur offrant un retour visuel clair. Quelle autre fonctionnalité de Tkinter pourriez-vous explorer pour enrichir vos interfaces graphiques ?

ÉTIQUETÉ : Python
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Créer une barre de progression avec Tkinter

© Alphorm - Tous droits réservés