[Python] Recupérer valeur checkbutton

Résolu/Fermé
Utilisateur anonyme - 25 avril 2006 à 12:09
 Utilisateur anonyme - 25 avril 2006 à 16:28
Bonjour
Ca faisait bien une semaine que je n'avais posé de questions, mais là j'y arrive pas....
Voilà mon code
i = 0
for t in self.param_inputs:
value = Tkinter.IntVar();
checkbox = Tkinter.Checkbutton(group_input.interior(), text = t, variable = value, command = self.checkbutton_input)
self.checkButtonsInputsValues = value
checkbox.grid(column = 1, row = i)
i += 1

Le principe est de créer autant de checkbutton qu'il y a de paramètres dans ma liste 'self.param_inputs'.
Les différents checkbuttons sont bien créés avec le nom du paramètre qu'il faut, mais quand je séléctionne un paramètre et que j'appelle la fonction 'self.checkbutton_input', j'affiche 'self.checkButtonsInputsValues'. Le problème est que cette valeur est toujours la même (celle créée pour le dernier checkbutton).
Comment puis-je avoir des valeurs différentes pour tous mes paramètres?
Merci
A voir également:

4 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
25 avril 2006 à 16:07
Oui, le message est le même.
Mais dans ta méthode checkbutton_input, tu peux parcourir la liste des boutons pour voir lesquel sont cochés ou non.
1
Utilisateur anonyme
25 avril 2006 à 16:12
Ben je ne sais pas ce que j'ai changé, mais effectivement, maintenant j'arrive à récupérer la valeur des boutons.
Un grand merci.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
25 avril 2006 à 16:26
Ben je ne sais pas ce que j'ai changé

tu peux mémoriser les valeurs et comparer anciennes/nouvelles pour voir ce qui a changé :-)
0
Utilisateur anonyme
25 avril 2006 à 16:28
Oui c'est bon merci.
Je stocke toutes mes valeurs dans un dictionnaire.
Merci
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
25 avril 2006 à 13:05
le problème est que cette valeur est toujours la même (celle créée pour le dernier checkbutton).

Stock tout simplement les différentes valeurs dans un tableau !

Avant la boucle for: self.checkButtonsInputsValues = []

puis dans ta boucle:
self.checkButtonsInputsValues.append(value)


Après, tu pourra accéder à la valeur de chaque checkbutton avec self.checkButtonsInputsValues[7].get() par exemple.
-1
Utilisateur anonyme
25 avril 2006 à 14:16
Je l'ai déjà fait ça ne change pas rien.
Parce que mon problème vient du fait que lorsque j'appelle ma fonction
'self.checkbutton_input()', je ne sais pas quel checkbutton est coché.
J'aimerais que la fonction me renvoie directement le nom du bouton que je viens de cocher.
C'est ça que je n'arrive pas à faire.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
25 avril 2006 à 15:37
je ne sais pas quel checkbutton est coché.

Dans ce cas, stock dans self.checkButtonsInputsValues sous forme d'un dictionnaire.

self.checkButtonsInputsValues = {}

puis:

self.checkButtonsInputsValues[t] = value


Comme ça tu pourra savoir quelle case est cochée et quelle case ne l'est pas.

Exemple:
for (param,checkbutton) i in self.checkButtonsInputsValue.items():
    print "Le bouton ",param," a comme valeur ", checkbutton.get()
-1
Utilisateur anonyme
25 avril 2006 à 16:03
Bon décidément je ne vois pas.
Que je clique sur l'un ou l'autre de mes boutons, le message renvoyé est le même :
"[('vb', <Tkinter.IntVar instance at 0xb608c92c>), ('vc', <Tkinter.IntVar instance at 0xb608ca8c>), ('vs', <Tkinter.IntVar instance at 0xb608cb0c>), ('ve', <Tkinter.IntVar instance at 0xb608ca0c>)]"
En aucun cas, je peux savoir quel(s) est(sont) le(s) bouton(s) coché(s).
0