2013-09-28 4 views
1

Je dois implémenter l'arborescence avec la case à cocher.La valeur de la case à cocher imprime deux fois lorsque la case à cocher est cochée dans l'arborescence

Ci-dessous mon code:

import Tix 

class View(object): 
    def __init__(self, root): 
     self.root = root 
     self.makeCheckList() 

    def makeCheckList(self): 
     self.cl = Tix.CheckList(self.root, browsecmd=self.selectItem) 
     self.cl.pack() 
     self.cl.hlist.add("CL1", text="checklist1") 
     self.cl.hlist.add("CL1.Item1", text="subitem1") 
     self.cl.hlist.add("CL2", text="checklist2") 
     self.cl.hlist.add("CL2.Item1", text="subitem1") 
     self.cl.setstatus("CL2", "on") 
     self.cl.setstatus("CL2.Item1", "on") 
     self.cl.setstatus("CL1", "off") 
     self.cl.setstatus("CL1.Item1", "off") 
     self.cl.autosetmode() 

    def selectItem(self, item): 
     print item, self.cl.getstatus(item) 

def main(): 
    root = Tix.Tk() 
    view = View(root) 
    root.update() 
    root.mainloop() 

if __name__ == '__main__': 
    main() 

Il y a un problème; Si une case est cochée, la valeur de la case à cocher est imprimée deux fois pour une seule vérification.

Quelqu'un peut-il s'il vous plaît aidez-moi à résoudre le problème de sorte que la valeur est imprimée une fois?

Répondre

0

Je pense que le fait de cliquer sur la souris est classé comme un événement, puis de libérer la souris comme un autre. Si vous maintenez le bouton enfoncé, la valeur ne s'affiche qu'une seule fois. Relâchez-le et la déclaration d'impression est appelée à nouveau.

Questions connexes