bonjour,

je me casse la tête sur ça depuis pas mal de temps et je n'y arrive pas!
j'en appel donc à vos lumière.
j'essaie de créer des checkbutton automatiquement à partir d'une liste.
plutôt que de créer en dur les checkbutton dans le programme et pour qu'il soit évolutif, je récupère via un xml la liste des checkbutton à créer.

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
16
17
18
19
from tkinter import *
 
def traitement_CB():
	print(CB1.get())
	print(CB2.get())
	print(CB3.get())
 
fen1 = Tk()
fen1.title("checkbutton auto")
 
liste_CB=('CB1','CB2','CB3')  #liste des checkbutton à créer récupéré de l'xml
liste_onvalue=(17,24,100)   #liste des onvalue à affecter
rowz=1
 
for CB in liste_CB:
	indexCB=liste_CB.index(CB)  #on récupère l'index du bouton à créer pour lui affecter sa "onvalue"
	checkb=Checkbutton(fen1, text=str(CB), variable=CB, onvalue=int(liste_onvalue[indexCB]), offvalue=0, command=traitement_CB)
	checkb.grid(row=rowz,column=1,sticky="w",padx=5,pady=3)
	rowz+=1
mais ça ne fonctionne pas!
ça me crée bien les checkbutton mais ils ne sont pas utilisables.
python me renvoie une erreur me disant que les variables ne sont pas définies.
je pense que le problème vient du fait que python n'attribut pas les bonnes valeurs à "variable", c'est à dire CB1, CB2 et CB3.
comment peut-on définir une valeur de variable en variable?
une idée?

merci d'avance pour votre aide.