TreeEditor支持多种选择吗?

时间:2016-10-06 15:54:30

标签: enthought traitsui

我使用TreeEditor来表示我的traitsui应用程序中的模型对象。我希望能够通过按住ShiftCtrl并执行选择来在树编辑器中选择多个对象。我的最终目标是为用户提供一种快速方法,一次删除多个对象,而不是单独右键单击每个项目。

通过阅读我注意到的tree editor的源代码,

selection_mode = Enum('single', 'extended')

似乎定义了extended选择模式。但我找不到任何使用的示例代码,也没有在TreeEditor的文档中提及。

这是由traitsui支持吗?

2 个答案:

答案 0 :(得分:1)

FWIW,这里是一些从工作应用程序中剪下并清理过的相关代码。我没有尝试过运行它,因此可能会有一些复制/粘贴/清理错别字。

def default_traits_view(self):
    return View(
        UItem(
            'my_run_tree',
            editor=TreeEditor(
                nodes=[
                    TestRunTreeNode(
                        node_for=[Node0],
                        children='children',
                        label='label',
                    ),
                    TestRunTreeNode(
                        node_for=[Node1],
                        children='',
                        label='mylabel',
                    ),
                ],
                editable=False,
                selected='selected_nodes',
                selection_mode='extended',
            )
        ),
        resizable=True,
    )

答案 1 :(得分:1)

以下是演示多项选择的示例。正如乔纳森所说,

  • 设置selection_mode='extended'
  • selected属性设置为List(Any)

https://gist.github.com/danieljfarrell/24f838085172de9d20a4d3daa9f813b3