Partage
  • Partager sur Facebook
  • Partager sur Twitter

Creer des bouton de maniere dynamique

Sujet résolu
    1 septembre 2010 à 20:26:55

    Bonjour,

    a = 1
    
    for row in l:
       textbutton= "%s => %s" % (row['Reference'], row['Fournisseur'])
       lebutton = Button(leframe, text= textbutton, command= lambda :remplir(row))
       lebouton.grid(row= a,column= 1)
       a= a+1
    


    le but est de recuperer des info de la table SQL et de cree un boutton pour chaque reference de different fournisseur.

    les bouton s'affiche bien comme je le souhaite mais en cliquand dessus j'accede toujour au meme info (la derniere ligne de ma table SQL) chose que je comprend bien.

    Mais comment puis je envoyer mon pararametre a ma fonction "remplir" correctement pour chaque bouton?

    Merci d'avance pour vos precieux conseil ^^
    • Partager sur Facebook
    • Partager sur Twitter
      1 septembre 2010 à 21:40:20

      Il semblerait que la valeur qui est mise dans remplir() c'est la dernière prise dans la boucle. Pourquoi ? je ne sais pas...
      Mais j'ai déjà rencontré ce problème et il me semble qu'une solution est de faire :
      command = lambda tmp=row : remplir(tmp)
      

      • Partager sur Facebook
      • Partager sur Twitter
        2 septembre 2010 à 5:46:51

        Citation : anicet62


        command = lambda tmp=row : remplir(tmp)
        




        de cette maniere mon programme fonctionne correct.

        merci de ton aide ;)
        • Partager sur Facebook
        • Partager sur Twitter

        Creer des bouton de maniere dynamique

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown