2013-04-01 29 views
0

我想複選框添加到我使用的是多選樹控件,而且我認爲我可以做到這一點...如何正確使用帶有wx.lib.agw.customtreectrl.CustomTreeCtrl樣式的複選框?

import wx, wx.lib.agw.customtreectrl 

app = wx.App(False) 

fr = wx.Frame(None) 

myModule = wx.lib.agw.customtreectrl 
myStyle = (myModule.TR_DEFAULT_STYLE|myModule.TR_MULTIPLE 
      |myModule.TR_FULL_ROW_HIGHLIGHT|myModule.TR_AUTO_CHECK_CHILD 
      |myModule.TR_AUTO_CHECK_PARENT|myModule.TR_AUTO_TOGGLE_CHILD) 

tree = myModule.CustomTreeCtrl(fr, style=myStyle) 
treeRoot = tree.AddRoot("PyRx Enzymes") 
treeNodes =['Node A','Node B', 'Node C'] 
treeItems = ['1', '2', '3'] 
for i, _ in enumerate(treeNodes): 
    iNode = tree.AppendItem(treeRoot, treeNodes[i]) 
    for ii in treeItems: 
     tree.AppendItem(iNode, "%s %s"%(treeNodes[i].replace('Node ',''), ii)) 
tree.Expand(treeRoot) 

fr.Show() 

app.MainLoop() 

...但是改變樣式選項似乎不有什麼影響。無論我如何更改'myStyle'變量,最終都會得到與將其設置爲0時相同的結果。我不確定我在這裏做錯了什麼。

我使用wxPython的2.9在64位Windows 7

編輯:「agwStyle」我看到,我用的是「風格」命名的參數,而不是

回答

1

我很抱歉地忽略了明顯的。以下代碼創建所需的功能。

import wx, wx.lib.agw.customtreectrl 

app = wx.App(False) 

fr = wx.Frame(None) 

myModule = wx.lib.agw.customtreectrl 
myStyle = (myModule.TR_DEFAULT_STYLE|myModule.TR_MULTIPLE 
      |myModule.TR_FULL_ROW_HIGHLIGHT|myModule.TR_AUTO_CHECK_CHILD 
      |myModule.TR_AUTO_CHECK_PARENT|myModule.TR_AUTO_TOGGLE_CHILD) 

tree = myModule.CustomTreeCtrl(fr, agwStyle=myStyle) 
treeRoot = tree.AddRoot("PyRx Enzymes") 
treeNodes =['Node A','Node B', 'Node C'] 
treeItems = ['1', '2', '3'] 
for i, _ in enumerate(treeNodes): 
    iNode = tree.AppendItem(treeRoot, treeNodes[i], ct_type=1) 
    for ii in treeItems: 
     tree.AppendItem(iNode, "%s %s"%(treeNodes[i].replace('Node ',''), ii), ct_type=1) 
tree.Expand(treeRoot) 

fr.Show() 

app.MainLoop() 

任何可能的改進建議,將不勝感激。