Afficher et manipuler des listes d’éléments dans une interface graphique peut être complexe sans les bons outils.
Sans une méthode efficace, l’interactivité de votre application peut en pâtir, rendant l’expérience utilisateur moins fluide.
Dans cet article, nous explorons comment tirer parti du widget Listbox de Tkinter pour simplifier la gestion des listes d’éléments.
Créez des interfaces graphiques interactives avec Python et TKinter !

Le widget Listbox de Tkinter est l’un des outils les plus utilisés pour afficher une liste d’éléments dans une interface graphique. Il s’avère très pratique pour des cas d’utilisation où vous souhaitez permettre à l’utilisateur de sélectionner un ou plusieurs éléments d’une liste préalablement définie. Voici les étapes nécessaires pour manipuler une Listbox, en explorant les principales fonctionnalités telles que l’insertion , la sélection , l’affichage et la suppression d’éléments .
Créer une Listbox avec Tkinter
La première étape consiste à créer une Listbox. Lorsque vous créez une Listbox sans ajouter d’éléments, celle-ci apparaîtra comme un simple cadre vide dans l’interface. C’est un conteneur prêt à être rempli avec des informations pertinentes. Voici le code qui vous permet de faire ça :
import tkinter as tk
# Création de la fenêtre principale
root = tk.Tk()
root.title("Exemple de Listbox")
# Création d'une Listbox
liste = tk.Listbox(root)
liste.pack()
# Démarrage de la boucle principale
root.mainloop()
Dans cet exemple, nous créons d’abord la fenêtre principale avec tk.Tk(), puis nous ajoutons une Listbox. Le widget est affiché grâce à la méthode pack() qui permet de positionner et d’afficher l’élément dans la fenêtre. En exécutant ce code, vous obtiendrez une fenêtre simple avec une Listbox vide comme il est montré dans la figure suivante :
Figure 1 : Création d’une fenêtre Tkinter avec une Listbox simple
Utiliser insert() dans Tkinter Listbox
Une Listbox vide n’est d’aucune utilité. Il est donc nécessaire d’y ajouter des éléments. Pour ce faire, nous utilisons la méthode insert(), qui permet d’ajouter des éléments à un index spécifique de la Listbox. Par défaut, nous ajoutons ces éléments à la fin de la liste en utilisant l’argument tk.END . Voici un exemple d’utilisation de cette méthode :
import tkinter as tk
# Création de la fenêtre principale
root = tk.Tk()
root.title("Exemple de Listbox")
# Création d'une Listbox
liste = tk.Listbox(root)
liste.pack()
# Création d'une liste d'éléments à ajouter
elements = ["Python", "Java", "C++", "JavaScript"]
# Ajout des éléments à la Listbox
for element in elements:
liste.insert(tk.END, element)
# Démarrage de la boucle principale
root.mainloop()
Ce morceau de code montre comment remplir une Listbox avec une liste d’éléments. Nous utilisons une boucle for pour parcourir la liste et insérer chaque élément à la fin de la Listbox à l’aide de tk.END . Lorsque vous exécutez ce code, la Listbox apparaîtra avec les éléments Python , Java , C++ , et JavaScript déjà remplis. L’utilisateur pourra faire défiler la liste pour visualiser les différentes options. Voici un aperçu de l’exécution de ce programme :
select_set() pour Listbox Tkinter
L’intérêt d’une Listbox réside dans la possibilité de sélectionner un ou plusieurs éléments. Pour sélectionner un élément via le programme, vous pouvez utiliser la méthode select_set() , qui met en surbrillance l’élément d’un index donné.
import tkinter as tk
# Création de la fenêtre principale
root = tk.Tk()
root.title("Exemple de Listbox")
# Création d'une Listbox
liste = tk.Listbox(root)
liste.pack()
# Création d'une liste d'éléments à ajouter
elements = ["Python", "Java", "C++", "JavaScript"]
# Ajout des éléments à la Listbox
for element in elements:
liste.insert(tk.END, element)
el=liste.select_set(0)# Sélectionne le premier élément
# Démarrage de la boucle principale
root.mainloop()
Ici, l’élément avec l’indice 0 (le premier élément) est sélectionné automatiquement dès l’affichage de la fenêtre comme il est montré dans la figure suivante :
Obtenir curselection() en Listbox
Récupérer l’élément sélectionné est essentiel pour pouvoir exploiter les données choisies par l’utilisateur. La méthode curselection() renvoie l’indice de l’élément sélectionné, tandis que get() permet de récupérer la valeur associée à cet indice.
import tkinter as tk
# Création de la fenêtre principale
root = tk.Tk()
root.title("Exemple de Listbox")
# Création d'une Listbox
liste = tk.Listbox(root)
liste.pack()
# Création d'une liste d'éléments à ajouter
elements = ["Python", "Java", "C++", "JavaScript"]
# Ajout des éléments à la Listbox
for element in elements:
liste.insert(tk.END, element)
defafficher_selection():
selection = liste.get(liste.curselection())# Récupère l'élément sélectionné
print("Élément sélectionné :", selection)
# Création d'un bouton pour afficher la sélection
btn_afficher = tk.Button(root,text="Afficher sélection",command=afficher_selection)
btn_afficher.pack()
root.mainloop()
Dans cet exemple, un bouton est créé pour déclencher l’affichage de l’élément sélectionné dans la console lorsque l’utilisateur clique dessus. La méthode curselection() renvoie l’indice, et get() renvoie la valeur correspondante. Si vous exécutez ce code et sélectionnez un élément puis vous faite un clic sur le bouton Afficher cela affichera le texte correspondant dans la console comme il est montré dans la figure suivante :
Supprimer avec delete() en Listbox
La suppression d’un élément sélectionné est une autre fonctionnalité courante. La méthode delete() permet de retirer un élément de la Listbox, et elle peut être combinée avec curselection() pour supprimer l’élément sélectionné par l’utilisateur comme il est montré dans le code suivant :
import tkinter as tk
# Création de la fenêtre principale
root = tk.Tk()
root.title("Exemple de Listbox")
# Création d'une Listbox
liste = tk.Listbox(root)
liste.pack()
# Création d'une liste d'éléments à ajouter
elements = ["Python", "Java", "C++", "JavaScript"]
# Ajout des éléments à la Listbox
for element in elements:
liste.insert(tk.END, element)
defsupprimer_selection():
liste.delete(liste.curselection())# Supprime l'élément sélectionné
# Création d'un bouton pour supprimer l'élément sélectionné
btn_supprimer = tk.Button(root,text="Supprimer sélection",command=supprimer_selection)
btn_supprimer.pack()
root.mainloop()
Lorsque vous sélectionnez un élément et cliquez sur « Supprimer sélection », cet élément disparaît de la Listbox, rendant la liste dynamique et interactive.
Dans cet exemple, après avoir initialisé la Listbox avec les options Python , Java , C++ , et JavaScript , nous avons sélectionné et supprimé l’option Python . La liste mise à jour n’affiche désormais plus Python , et seules les options Java , C++ , et JavaScript restent dans la Listbox .
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 Listbox en Tkinter ?
Comment ajouter des éléments à une Listbox en Tkinter ?
Comment sélectionner un élément dans une Listbox avec Tkinter ?
Comment récupérer l'élément sélectionné dans une Listbox ?
Comment supprimer un élément sélectionné dans une Listbox ?
Conclusion
La Listbox de Tkinter est un outil puissant pour gérer des listes d’éléments dans une interface graphique. Quelle autre fonctionnalité de Tkinter souhaiteriez-vous explorer pour enrichir vos applications Python ?