[Python] Recupérer valeur checkbutton
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
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
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:
- Tkinter checkbutton get value
- Get data back - Télécharger - Récupération de données
- Get youtube - Télécharger - Téléchargement & Transfert
- Eagle get - Télécharger - Web & Internet
- Get adobe flash player - Télécharger - Divers Web & Internet
- Adobe get air - Télécharger - Édition & Programmation
4 réponses
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.
Mais dans ta méthode checkbutton_input, tu peux parcourir la liste des boutons pour voir lesquel sont cochés ou non.
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é :-)
tu peux mémoriser les valeurs et comparer anciennes/nouvelles pour voir ce qui a changé :-)
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.
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.
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.
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.
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:
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()
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).
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).
Un grand merci.