Как правильно использовать флажки со стилями 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()

Любые предложения о возможных улучшениях будут оценены.

Другие вопросы по тегам