TreeEditor 支持多选吗?

Does TreeEditor support multiple selection?

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

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

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

这似乎定义了一个 extended select 离子模式。但是我找不到任何使用的示例代码,也没有在 TreeEditor.

的文档中提及

traitsui支持吗?

FWIW,这是从工作应用程序中截取并经过清理的一些相关代码。我没有尝试 运行 它,所以可能会有一些 copy/paste/sanitize 错别字。

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,
    )

下面是一个演示多选的例子。正如乔纳森所说,

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

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