2013-09-28 435 views
1

我需要用複選框實現樹形視圖。在樹形視圖中選中複選框時複選框值打印兩次

下面是我的代碼:

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() 

有一個問題;如果選中複選框,則複選框的值會打印兩次以進行單項檢查。

任何人都可以請幫我解決問題,這樣的價值打印一次?

回答

0

我覺得因爲點擊鼠標被歸類爲一個事件,然後釋放鼠標作爲另一個事件。如果保持按下狀態,則只顯示一次打印的值。釋放它並重新調用打印語句。