[Python] Pyhton checkbox changement d'état
thibault7249
Messages postés
22
Statut
Membre
-
thibault7249 Messages postés 22 Statut Membre -
thibault7249 Messages postés 22 Statut Membre -
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
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:
- [Python] Pyhton checkbox changement d'état
- Changement dns - Guide
- Citizen code python avis - Accueil - Outils
- Remettre pc etat usine - Guide
- Etat disque dur - Télécharger - Informations & Diagnostic
- Changement d'heure - Guide
2 réponses
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é.
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é.
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
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