【问题标题】:Does TreeEditor support multiple selection?TreeEditor 是否支持多选?
【发布时间】:2016-10-06 15:54:29
【问题描述】:

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

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

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

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

traitsui 支持吗?

【问题讨论】:

    标签: enthought traitsui


    【解决方案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,
        )
    

    【讨论】:

    • 这是我需要的线索。标记为已回答。我将粘贴来自 Traitsui 文档的 tree_editor.py 示例代码的修改版本,该文档演示了多项选择。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-10
      • 1970-01-01
      • 2023-03-06
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多