[Python 3.x] affichage listeS dans Listbox
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
Code:
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) |
Je fais une extraction de ma base de données
Code:
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 |
Et j'affiche dans ma listbox: lBox
Code:
1 2 3 4
| def afficher(liste):
lst = liste
for r in lst:
lBox.insert(END, " {} {} {} ".format(r[0], r[1], r[2])) |
En fait je voudrais pouvoir réutiliser ma fonction afficher() quelque soit ma liste.
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?