IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Probleme d'argument dans une liste de bouton


Sujet :

Tkinter Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 82
    Points : 114
    Points
    114
    Par défaut [RESOLU]Probleme d'argument dans une liste de bouton
    Bonjour,
    Je créé une liste de boutons via une boucle "for i in ", en voulant passer ma variable i à la fonction voulue, mais seule la derniere valeur de i est prise en compte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    def initialize(self):
        self.grid()
     
        self.buttonTab = []    
        countUser = 0
        for i in range(1,6) :
            self.buttonTab += [Tkinter.Button(self,text="User "+str(i), command=lambda:self.loginCmd(i))]
            self.buttonTab[countUser].grid(column=0,row=countUser)
            countUser += 1
     
    def loginCmd(self,id):
        print str(id)+" has log in"
        for but in self.buttonTab : 
            Tkinter.Button.destroy(but)
    Ce code créé correctement les 5 boutons(User 1, User 2, ...), correctement placés (row=1,2,...), ils sont meme correctements détruits, mais tous me renvoient toujours la meme valeur : "5 has log in"

    C'est surement une erreur tres simple, mais je n'arrive pas à comprendre...

    Merci d'avance,

    Cordialement

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    j'ai résolu avec l'aide de bon conseillers d'ici, vois plus bas: retour de text bouton, on utilise .cget

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 82
    Points : 114
    Points
    114
    Par défaut [RESOLU]
    Merci, mais je ne comprend pas bien ta réponse.

    Heuresement (pour moi), j'allais justement actualiser ce post :
    Apparrement, je n'avais pas bien compris l'utilisation de "lambda", une syntaxe correcte était :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    command=lambda x=i:self.loginCmd(x)
    Cela fonctionne tres bien comme ça.

    Cordialement

    3o3

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme d'accés dans une liste en VB.net
    Par lucyole dans le forum VB.NET
    Réponses: 1
    Dernier message: 14/01/2008, 13h05
  2. Réponses: 1
    Dernier message: 08/06/2007, 09h12
  3. Réponses: 2
    Dernier message: 30/06/2006, 16h46
  4. probleme de selection dans une liste deroulant
    Par biboulou dans le forum IHM
    Réponses: 5
    Dernier message: 04/05/2006, 12h16
  5. [LG]probleme d'ajout dans une liste chainée...
    Par misteryann dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2004, 20h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo