Vous avez du mal à gérer de grandes listes d’éléments dans votre application Tkinter.
Sans une solution adéquate, votre interface utilisateur devient encombrée et peu intuitive, frustrant les utilisateurs.
Cet article vous montre comment intégrer une Scrollbar à une Listbox en Tkinter pour une navigation fluide et efficace.
Créez des interfaces graphiques interactives avec Python et TKinter !
Utiliser Scrollbar avec Listbox Tkinter
Le widget Scrollbar permet à l’utilisateur de faire défiler une liste ou du contenu lorsqu’il y a trop d’éléments pour être affichés en une seule fois. Cependant, il est important de comprendre que la barre de défilement ne fait rien à elle seule. Elle doit être liée à un autre widget, comme une Listbox , pour fonctionner. Voici les différentes étapes pour y parvenir.
Création de la fenêtre principale et de la barre de défilement
La première étape consiste à créer une fenêtre principale Tkinter et à ajouter une barre de défilement. À ce stade, la barre de défilement ne sera pas encore fonctionnelle, mais elle sera visible dans l’interface.
from tkinter import *
root = Tk()# Crée la fenêtre principale de l'application
root.title("Mon application")# Donne un titre à la fenêtre
root.geometry('200x250+600+200')# Définir les dimensions et la position de la fenêtre
# Création de la barre de défilement
scrollbar = Scrollbar(root)
scrollbar.pack(side=RIGHT,fill=Y)# Placer la barre de défilement à droite avec un remplissage vertical
root.mainloop()
Dans l’exemple ci-dessus, nous avons ajouter une Scrollbar à la fenêtre avec pack(side=RIGHT, fill=Y), ce qui la place sur le côté droit de la fenêtre et la remplit verticalement. En exécutant ce code voici la fenêtre retourné :
Création d'une Listbox et ajout d'éléments
Maintenant que la barre de défilement est visible, il est temps d’ajouter une Listbox . Cette Listbox contiendra plusieurs éléments. Par défaut, tous les éléments de la liste ne pourront pas être visibles à l’écran, ce qui justifie l’utilisation de la barre de défilement.
listbox = Listbox(root,width=200,height=250,yscrollcommand=scrollbar.set)
# Ajout de 30 éléments à la Listbox
for i in range(30):
listbox.insert(END, "Élément " +str(i))
Dans le code ci-dessus :
- Nous créons un widget Listbox avec une taille de width=200 et height=250.
- Le paramètre yscrollcommand=scrollbar.set relie la Listbox à la Scrollbar pour permettre de faire défiler les éléments.
- La boucle for ajoute 30 éléments à la Listbox .
Placement de la Listbox dans la fenêtre
Une fois la Listbox créée et remplie d’éléments, il faut la placer dans la fenêtre afin qu’elle s’affiche avec la barre de défilement.
# Placer la Listbox dans la fenêtre
listbox.pack(side=LEFT, fill=BOTH)
pack() positionne la Listbox dans la fenêtre à gauche, avec un remplissage vertical et horizontal. Voici le résultat d’exécution de ce code :
En exécutant ce code on remarque que même si la Scrollbar et la Listbox sont maintenant visibles, la barre de défilement ne fonctionne pas encore.
Lier la barre de défilement à la Listbox
Afin d’activer la barre de défilement et lui permettre de faire défiler les éléments de la Listbox, il est essentiel de lier ces deux widgets en configurant la Scrollbar de la manière suivante :
# Configurer la Scrollbar pour qu'elle contrôle la vue verticale de la Listbox
scrollbar.config(command=listbox.yview)
scrollbar.config(command=listbox.yview) configure la barre de défilement pour qu’elle agisse sur la vue verticale de la Listbox , permettant ainsi le défilement des éléments.
Lorsque toutes ces étapes sont suivies et le code est exécuté, vous obtenez une fenêtre Tkinter avec une Listbox contenant 30 éléments et une Scrollbar sur la droite. La barre de défilement permet de faire défiler les éléments de la liste qui ne sont pas immédiatement visibles comme il est montré dans la figure suivante :
Avantages barre défilement Listbox Tkinter
L’ajout d’une barre de défilement (Scrollbar) à une Listbox offre plusieurs avantages qui améliorent l’expérience utilisateur et rendent l’application plus fonctionnelle :
Gestion efficace de grandes listes d'éléments :
Lorsque la Listbox contient un grand nombre d’éléments, il n’est pas pratique de tout afficher en même temps. La barre de défilement permet à l’utilisateur de naviguer facilement dans la liste sans encombrer l’interface graphique.
Gain d'espace dans l'interface utilisateur :
Une Listbox avec une barre de défilement utilise l’espace de manière plus efficace. Au lieu d’occuper une grande partie de l’écran pour afficher tous les éléments, seule une partie de la liste est visible, et l’utilisateur peut défiler pour accéder aux autres.
Expérience utilisateur améliorée :
La barre de défilement rend l’application intuitive et conviviale, surtout lorsqu’il s’agit de manipuler des données volumineuses. L’utilisateur peut interagir rapidement avec la liste sans se sentir submergé par les informations affichées.
Extensibilité et adaptabilité :
La Scrollbar peut être utilisée avec d’autres widgets (comme Text ou Canvas), ce qui la rend idéale pour des applications plus complexes où plusieurs widgets doivent être liés.
Professionnalisation de l'interface :
Les barres de défilement sont un standard dans les interfaces utilisateur modernes. Leur intégration donne à l’application un aspect professionnel, aligné sur les attentes des utilisateurs.
Facilité de mise en œuvre :
En quelques lignes de code, il est possible d’intégrer et de lier une barre de défilement à une Listbox, ce qui en fait une solution rapide et efficace pour les développeurs.
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.
FAQ
Comment créer une barre de défilement dans Tkinter ?
Comment lier une Scrollbar à une Listbox en Tkinter ?
Quels sont les avantages d'utiliser une Scrollbar avec Listbox en Tkinter ?
Comment ajouter des éléments à une Listbox en Tkinter ?
Comment placer une Listbox dans une fenêtre Tkinter ?
Conclusion
L’intégration d’une Scrollbar avec une Listbox en Tkinter est un moyen efficace d’améliorer l’interface utilisateur. Pensez-vous à d’autres widgets où l’utilisation d’une Scrollbar pourrait être bénéfique ?