Bonjour à tous.
Je suis venue demander de l'aide <a class="inlineAdmedialink" href="#">car</a> je n'arrive pas à régler mon problème de checkbutton. J'essaye de faire en sorte que si une checkbutton est cochée cela décoche çà voisine. Je veux créer autant de paire de checkbuttons qu'il y a de faisceaux (comptés auparavant). Pour chaques faisceaux je voulais que si je coche une case çà décoche l'autre et inversement mais que c
çà ne perturbe pas les cases des checkbuttons des autres faisceaux...Je travaille avec python v3.2.3 et tkinter pour l'interface graphique. voici mon code :
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
20
21
22
23
24
25
26
27
28
29
 
        ## n° diode ref
        label=tkinter.Label(self,text="n° diode ref",anchor="w") #création d'un label
        label.grid(column=0,row=16,pady=3) #emplacement du label
        self.var1=tkinter.IntVar()
        self.var2=tkinter.IntVar()
 
        for i in range(0,compteur_faisceaux): # pour créer deux cases à cocher par faisceau
            if dico['Energy'+ str(i+1)]=='6': # si l'énergie était de 6 MV
                def fonction(var1,var2):
                    if self.var1.get() ==1:  #recuperation de la valeur du checkbutton
                        self.var2(0)
                        self.checkbutton1=tkinter.Checkbutton(self,text="1",variable=self.var1,onvalue=1,offvalue=0) #création d'une case à cocher pour 1
                        self.checkbutton1.grid(column=1+i,row=16,sticky='W') #emplacement de la case à cocher
                        self.checkbutton2=tkinter.Checkbutton(self,text="11",variable=self.var2,onvalue=1,offvalue=0) #création d'une case à cocher pour 11
                        self.checkbutton2.grid(column=1+i,row=16,sticky='E') #emplacement de la case à cocher
                    else:
                        self.var2(1)
                        self.checkbutton1=tkinter.Checkbutton(self,text="1",variable=self.var1,onvalue=1,offvalue=0) #création d'une case à cocher pour 1
                        self.checkbutton1.grid(column=1+i,row=16,sticky='W') #emplacement de la case à cocher
                        self.checkbutton2=tkinter.Checkbutton(self,text="11",variable=self.var2,onvalue=1,offvalue=0) #création d'une case à cocher pour 11
                        self.checkbutton2.grid(column=1+i,row=16,sticky='E') #emplacement de la case à cocher
                #création des checkbutton au début sans clic
                self.checkbutton1=tkinter.Checkbutton(self,text="1",variable=self.var1,onvalue=1,offvalue=0) #création d'une case à cocher pour 1
                self.checkbutton1.grid(column=1+i,row=16,sticky='W') #emplacement de la case à cocher
                self.checkbutton1.bind('<ButtonRelease-1>',fonction(var1,var2))
                self.checkbutton2=tkinter.Checkbutton(self,text="11",variable=self.var2,onvalue=1,offvalue=0) #création d'une case à cocher pour 11
                self.checkbutton2.grid(column=1+i,row=16,sticky='E') #emplacement de la case à cocher
                self.checkbutton2.bind('<ButtonRelease-1>',fonction)
Quand j'exécute ce code si je coche une case cela ne décoche pas sa voisine...

Merci d'avance pour votre aide.