FAQ PythonConsultez toutes les FAQ

Nombre d'auteurs : 11, nombre de questions : 188, dernière mise à jour : 2 septembre 2018 

 
OuvrirSommaireGUITkinter / Tix / PmwTkinterListbox
 
Sélectionnez

def clic(evt):
    i=listbox.curselection()  ## Récupération de l'index de l'élément sélectionné
    return listbox.get(i)  ## On retourne l'élément (un string) sélectionné
listbox.bind('<ButtonRelease-1>',clic)  ## on associe l'évènement "relachement du bouton gauche la souris" à la listbox
Créé le 25 mai 2005  par Guigui_

L'association d'un Scrollbar à une Listbox se fait très simplement. Pour cela, il suffit de créer un Scrollbar et la Listbox associée avec un même parent (en général une Frame).
Ensuite, il faut configurer le Scrollbar et la Listbox pour que le déplacement dans la Listbox et le mouvement de l'ascenseur se fasse simultanément, pour un Scrollbar vertical:
scrollbar.config(command = widget.yview)
listbox.config(yscrollcommand = scrollbar.set

Enfin, on les affiche à l'écran par l'intermédiaire du packer
listbox.pack(side = Tk.LEFT, fill = Tk.Y)
scrollbar.pack(side = Tk.RIGHT, fill = Tk.Y)

 
Sélectionnez

import Tkinter as Tk
root = Tk.Tk()
f1 = Tk.Frame(root)
s1 = Tk.Scrollbar(f1)
l1 = Tk.Listbox(f1)
for i in range(20): l1.insert(i, str(i))
s1.config(command = l1.yview)
l1.config(yscrollcommand = s1.set)
l1.pack(side = Tk.LEFT, fill = Tk.Y)
s1.pack(side = Tk.RIGHT, fill = Tk.Y)
f1.pack()
root.mainloop()
Créé le 2 mai 2006  par Guigui_

Pour supprimer un élement dans une listbox, il faut utiliser la fonction l.delete(first, last=None)first représente l'index du premier élement supprimé et last, l'index du dernier. Si ce dernier est omis, un seul élément (désigné par first) sera supprimé.
Pour vider une listbox, il suffit d'appliquer la procédure l.delete(0,Tk.END)

Suppression de l'ensemble des éléments dans une listbox
Sélectionnez

import Tkinter as Tk

root = Tk.Tk()
listbox = Tk.Listbox(root)
listbox.insert(0, 'element1')
listbox.insert(1, 'element2')
listbox.insert(2, 'element3')
listbox.pack()
def clear():
    listbox.delete(0, Tk.END)
btn = Tk.Button(root, text = 'Effacer la liste', command=clear)
btn.pack()
root.mainloop()
Créé le 20 juillet 2006  par Guigui_
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2005-2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.