[Python] checkbuttons.add()

Résolu/Fermé
Utilisateur anonyme - 12 avril 2006 à 12:11
 Utilisateur anonyme - 13 avril 2006 à 11:28
Bonjour
J'ai un (très léger) souci avec la command checkbuttons.add().
Quand je fais ça :
for t in list_param_output :
self.checkbuttons.add(t)
Il me retourne l'erreur suivante:
"ValueError: Component name "S_deemb" must not contain "_"
Comment puis-je passer au travers de cette erreur?
Merci

11 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 657
12 avril 2006 à 22:39
Je ne connais pas le nombre de case à cocher

Pas de problème, tu peux les créer dynamiquement et les stocker dans une liste.

à quoi correspond le terme "variable = v"?

Ah pardon, erreur:
self.valeurCheckbutton = Tkinter.IntVar(); 
checkbox = Tkinter.Checkbutton(parent,text="Blablabla",variable=self.valeurCheckbutton)
checkbox.grid(column=0,row=2)
1
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 657
12 avril 2006 à 12:12
Elle contient quoi comme object ta liste list_param_output ?
0
Utilisateur anonyme
12 avril 2006 à 12:15
Ca dépend du fichier choisi au départ, mais dans ce cas-là :
['ic', 'ib', 'S_deemb']
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 657
12 avril 2006 à 12:23
Je vois... le message d'erreur est explicite:
"Component name "S_deemb" must not contain "_" "

Autrement dit, tu n'a pas le droit d'utiliser un underscore "_" dans les identifiants de composants.
0
Utilisateur anonyme
12 avril 2006 à 12:26
Ouais je m'en doutais mais je ne peux pas utiliser autre chose ou forcer l'écriture des paramètres, quelque chose comme ça?
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 657
12 avril 2006 à 12:33
Ce sont des cases à cocher que tu utilises ?

mmm... je ne comprend pas bien comment tu construit des cases à cocher.

Moi je fais comme ça:

self.valeurCheckbutton = Tkinter.IntVar(); 
checkbox = Tkinter.Checkbutton(parent,text="Blablabla",variable=v)
checkbox.grid(column=0,row=2)


C'est dans le text="Blabla" que je définis le texte qui doit s'afficher à côté de la base à cocher.


self.valeurCheckbutton me sert à lire l'état de la case (cochée ou pas):

if self.valeurCheckbutton.get()!=0: print "Case cochée !"
0
Utilisateur anonyme
12 avril 2006 à 14:36
Ben en fait au départ, je ne connais pas le nombre de case à cocher que je dois créer. Il dépend du nombre de paramètres contenus dans "list_param_input".
Pour chaque paramètre de cette liste, je créé une case à cocher qui porte le nom du paramètre.
Dans le code que tu m'as donné, à quoi correspond le terme "variable = v"?
0
Utilisateur anonyme
12 avril 2006 à 15:06
En fait je viens de me rendre compte que j'utilisais non pas la fonction Tkinter.Checkbutton, mais Pmw.RadioSelect.
Et effectivement, la fonction .add() ne s'applique pas aux checkbuttons.
Y'a une grande différence entre ces deux façons de faire?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 657
12 avril 2006 à 22:52
Pmw.RadioSelect

Je ne l'ai jamais utilisé. Il faut regarder la doc pour voir comment il s'utilise.
0
Utilisateur anonyme
13 avril 2006 à 09:24
Salut
Seb, quand tu dis qu'on peut les créer dynamiquement, ça veut dire quoi?
Car ce que je faisais moi, c'était qu'à chaque fois que je rencontrais un nouveau paramètre dans ma liste, j'ajoutais un nouvelle "RadioSelect" avec l'option .add() et le nom de mon nouveau paramètre. Mais avec Checkbutton, ça ne marce pas. L'attribut .add() n'est pas supporté par CheckButton.
0
Utilisateur anonyme
13 avril 2006 à 09:32
C'est bon merci.
Le matin c'est toujours un peu dur.....
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 657
13 avril 2006 à 09:58
C'est normal: checkbutton n'a pas de méthode add.


Que veux tu faire exactement ?

En principe, ajouter le bouton que tu viens de créer à ta liste.

Donc il faut appliquer la méthode .add sur ta liste, par sur le checkbutton.

maliste.add(moncheckbutton)


En l'occurence, pour ajouter un élément à une liste, c'est .append(), pas .add()
0
Utilisateur anonyme
13 avril 2006 à 10:03
Salut seb
ce que je veux faire, c'est parcourir une liste de paramètres, et ajouter un nouveau checkbutton qui porte le nom de mon nouveau paramètre.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 657
13 avril 2006 à 10:08
ce que je veux faire, c'est parcourir une liste de paramètres, et ajouter un nouveau checkbutton qui porte le nom de mon nouveau paramètre.

J'avais compris.

Le principe est de faire une boucle sur tes paramètres, et de créer un checkbutton pour chaque paramètre.

self.checkButtonsValues = {}
parametres = ['ga','bu','zo','meuh']

for parametre in parametres:
    v = Tkinter.IntVar(); 
    checkbox = Tkinter.Checkbutton(parent,text=parametre ,variable=v)
    self.checkButtonsValues[parametre] = v


Ensuite tu peux accéder à la valeur d'un checkbutton:
print self.checkButtonsValues['zo'].get()




Tu as suivi des cours d'algorithmie ?
0
Utilisateur anonyme
13 avril 2006 à 10:47
euh non jamais....
pourquoi, ça serait bien?
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 657
13 avril 2006 à 10:55
Je crois oui, parceque là tu te pose des questions existentielles sur la création de plusieurs checkbox, alors que ça se résoud avec des notions d'algo.
Et ça t'aidera à résoudre des tas d'autres problèmes (boucle imbriquées, branchements conditionnels, etc.)
0
Utilisateur anonyme
13 avril 2006 à 10:59
Pour tout dire, j'ai jamais vraiment suivi de cours de programmation.
C'est pour ça qu'il me manque la logique.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 657
13 avril 2006 à 11:23
ok.

Quelques liens si ça peut aider:
https://forums.commentcamarche.net/forum/affich-409073-euh-je-debute-alors#16

ainsi que:
http://www.commentcamarche.net/ccmdoc/index.php3?cat=93
0
Utilisateur anonyme
13 avril 2006 à 11:28
je te remercie
je vais voir si je trouve des trucs intéressants
0