我想将复选框添加到我正在使用的多选树控件中,我认为我可以使用...
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时相同。我不确定我在这里做错了什么。
我在64位Windows 7上使用wxPython 2.9。
编辑:我发现我使用'style'命名参数而不是'agwStyle'。答案 0 :(得分: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()
任何有关可能改进的建议都将受到赞赏。