我使用TreeEditor
来表示我的traitsui应用程序中的模型对象。我希望能够通过按住Shift
或Ctrl
并执行选择来在树编辑器中选择多个对象。我的最终目标是为用户提供一种快速方法,一次删除多个对象,而不是单独右键单击每个项目。
通过阅读我注意到的tree editor的源代码,
selection_mode = Enum('single', 'extended')
似乎定义了extended
选择模式。但我找不到任何使用的示例代码,也没有在TreeEditor
的文档中提及。
这是由traitsui支持吗?
答案 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