Bonjour je suis confronté à un problème pour afficher des listes de différentes tables au tailles variables dans un widget Listbox
Donc j'ai crée dans une frame mon Listbox
Je fais une extraction de ma base de données
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 frame2 = Frame(frame1, bd = 4, height = 200, relief = GROOVE) frame2.pack(side = TOP, padx = 10, pady = 10, expand = Y, fill = BOTH) lBox = Listbox(frame2, bd = 4, width = 100) vScroll = Scrollbar(frame2, command = lBox.yview) lBox.config(yscrollcommand = vScroll.set) vScroll.pack(side = RIGHT, expand = N, fill = Y, padx = 2, pady = 2) lBox.pack(side = LEFT, padx = 15, pady = 15)
Et j'affiche dans ma listbox: lBox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 def list_materiel(): liste = gestionBD.liretable("MATERIEL") afficher(liste) def liretable(table): " Retourne les enregistrements de la table " cnx = sqlite3.connect("BD_GESMAT.db3") c = cnx.cursor() liste = c.execute("SELECT * FROM {}".format(table)) cnx.commit() return liste
En fait je voudrais pouvoir réutiliser ma fonction afficher() quelque soit ma liste.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 def afficher(liste): lst = liste for r in lst: lBox.insert(END, " {} {} {} ".format(r[0], r[1], r[2]))
Par exemple, dans matériel il y a 3 colonnes, mais dans clients il y en a 6.
Peut on gérer avec insert et format le nombre à afficher et comment?
Partager