[Python] Pyhton checkbox changement d'état

Fermé
thibault7249 Messages postés 21 Date d'inscription lundi 2 juin 2008 Statut Membre Dernière intervention 20 février 2009 - 9 févr. 2009 à 16:07
thibault7249 Messages postés 21 Date d'inscription lundi 2 juin 2008 Statut Membre Dernière intervention 20 février 2009 - 10 févr. 2009 à 14:06
Bonjour,
voila j'ai une liste de checkbutton sous Tkinter de ce type :

#######################################################################################
######################################################################################
def afficherTexxt():
____for (param,checkbutton) in checkButtonsValues.items():
_________print "le bouton ",param,"a comme valeur",checkbutton

#######################################################################################
#######################################################################################
i=0


checkButtonsValues = {}
parametres = np.arange(0,36)
tabchk = []
for parametre in parametres:
____var = IntVar();
____chk=Checkbutton(text = parametre , variable = var, command = afficherTexxt)
____tabchk.append(chk)
____checkButtonsValues[parametre]= var.get()


j=0
i=0
for a in tabchk:

____a.grid(row = (i-j*6)+4,column = j)
____i+=1
____if i%6==0:
_______j+=1
###########################################################################################
#######################################################################
J'ai essayer de faire ce que j'ai pu avec le topic :
http://www.commentcamarche.net/forum/affich 2207644 python recuperer valeur checkbutton

mais hélas je n'arrive pas à récupérer "le bon checkbutton" en fait quand je veux changer juste changer dans le dictionnaire "checkButtonsValues" la valeur correspondant au bon bouton ... Dire qu'il est coché pour être clair.

D'avance Merci
A voir également:

2 réponses

thibault7249 Messages postés 21 Date d'inscription lundi 2 juin 2008 Statut Membre Dernière intervention 20 février 2009
10 févr. 2009 à 10:48
Bon pour ceux que ça interesse, et j'en sens qu'ils sont 1 ... ^^

j'ai fait une classe dérivée de checkbutton :

class CheckbuttonT(Checkbutton):


____def getText(self):
________print self['text']


____def __init__(self,master,_parametre,_variable):
________Checkbutton.__init__(self, master,text = _parametre,variable = _variable,command = self.getText)

et dans mon script principal :

parametres = np.arange(0,36)
tabchk = []
var=0
j=0
i=0
for parametre in parametres:
____chk =CheckbuttonT.CheckbuttonT(fenetre_root,parametre , _variable = 0)
____tabchk.append(chk)




for a in tabchk:
____a.grid(row = i-j*6+4,column = j)
____i+=1
____if i%6==0:
________j+=1



Le problème maintenant c'est que quand je clique sur un checkbutton , tous se cochent mais quand m'affiche bien le 'text' du bouton sur lequel j'ai cliqué.
0
thibault7249 Messages postés 21 Date d'inscription lundi 2 juin 2008 Statut Membre Dernière intervention 20 février 2009
10 févr. 2009 à 14:06
j'ai fini par y arriver :

class CheckbuttonT(Checkbutton):
etat = False

def getText(self):
if self.etat == False : self.etat = True
else: self.etat = False
print self['text'],self.etat


def __init__(self,_parametre,_on ,_off):
Checkbutton.__init__(self, text = _parametre,command = self.getText,onvalue = _on , offvalue = _off)

########################################################
parametres = np.arange(0,36)
global tabchk
tabchk = []
var=0
j=0
i=0
for parametre in parametres:

tabchk.append(CheckbuttonT.CheckbuttonT(parametre ,1,0))


for a in tabchk:
a.grid(row = i-j*6+4,column = j)
i+=1
if i%6==0:
j+=1
###########################################################
n=0
dico_canal = {}
while n < 36:
print tabchk[n]['text'],tabchk[n].etat

dico_canal[tabchk[n]['text'] ]= tabchk[n].etat
n +=1


Si ça peut aider quelqu'un un jour
Bonne journée
0