Как правильно использовать флажки со стилями 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()
Любые предложения о возможных улучшениях будут оценены.