Skip to content

ETree 树形控件 ​

import EUI 1.0

示例与代码 ​

勾选、半选、过滤与拖放 ​

QML 代码QML
效果
运行代码,体验组件交互

可修改文字、属性和事件,再点击运行。

代码在当前浏览器中运行 许可

基础用法 ​

QML 代码QML
效果
运行代码,体验组件交互

可修改文字、属性和事件,再点击运行。

代码在当前浏览器中运行 许可

基础用法 ​

QML 代码QML
效果
运行代码,体验组件交互

可修改文字、属性和事件,再点击运行。

代码在当前浏览器中运行 许可

属性 ​

属性说明取值与默认值
accordionbool

手风琴模式,同一层最多展开一个节点或折叠项。

默认值false
allowDragvar

拖动前检查函数,接收节点并返回是否允许拖动。

默认值null
allowDropvar

放置检查函数,接收拖动节点、目标节点和放置位置。

默认值null
autoExpandParentbool

展开或定位节点时自动展开祖先。

默认值true
checkOnClickLeafbool

点击叶子节点时切换勾选。

默认值false
checkOnClickNodebool

点击任意节点时切换勾选。

默认值false
checkStrictlybool

选中状态不随父子节点联动。

默认值false
checkedKeysvar

已勾选节点或表格行的唯一键数组。

默认值[]
currentKeystring

当前选中节点的唯一键。

默认值""
defaultExpandAllbool

初始展开所有节点或行。

默认值false
draggablebool

是否支持拖动;具体拖动对象由当前组件决定。

默认值false
draggingKeystring

当前被拖动节点的唯一键。

默认值""
emptyDelegateComponent

自定义空数据状态的 Component 插槽;null 使用默认内容。 委托上下文见本页示例。

默认值null
emptyTextstring

没有数据时的提示文字。

默认值随当前语言变化
enabledbool

是否允许交互;false 时控件禁用。

默认值true
expandOnClickNodebool

点击节点文字时展开或收起。

默认值false
expandedKeysvar

已展开节点、表格行或菜单项的唯一键数组。

默认值[]
filterNodeMethodvar

节点过滤函数 (query, node),返回是否保留节点。

默认值null
filterValuestring

当前过滤或搜索关键词。

默认值""
heightreal

组件尺寸,单位为像素;可绑定父布局尺寸。

默认值implicitHeight
highlightCurrentbool

高亮当前选中节点或行。

默认值true
iconSourceint

组件使用的图标。

EIcons.*
0(无图标)

默认值EIcons.CHEVRON_RIGHT
indentint

树节点或菜单子项每级的缩进,单位为像素。

默认值18
itemHeightint

菜单项、数据行或表头行的高度,单位为像素。

默认值34
lazybool

按需创建内容或加载数据;数据控件使用 load / lazyLoad。

默认值false
loadvar

懒加载回调,接收节点与 resolve;使用 resolve(children) 提供子节点。

默认值null
loadedChildrenvar

按节点键缓存的已加载子节点对象。

默认值动态绑定
loadingKeysvar

正在懒加载的节点或行键数组。

默认值[]
modelvar

树节点数据数组,可通过 props 和 nodeKey 自定义字段映射。

字段:
id, label, children
disabled, isLeaf

默认值[]
nodeDelegateComponent

自定义树或级联节点的 Component 插槽;null 使用默认内容。 委托上下文见本页示例。

默认值null
nodeKeystring

唯一标识字段;稳定且唯一的键可保持选择、展开与缓存状态。

默认值"id"
propsvar

数据字段映射及节点行为配置对象。

字段:
label, children, disabled
isLeaf

默认值({})
showCheckboxbool

为树节点显示勾选框。

默认值false
visiblebool

是否显示组件。

默认值true
widthreal

组件尺寸,单位为像素;可绑定父布局尺寸。

默认值implicitWidth
allNodesvar只读

树模型中全部节点的展平数组。

默认值由运行时计算
checkSummaryvar只读

树节点勾选与半选状态的汇总。

默认值由运行时计算
currentNodevar只读

当前选中树节点的数据对象。

默认值由运行时计算
halfCheckedKeysvar只读

处于半选状态的树节点键数组。

默认值由运行时计算
visibleNodesvar只读

展开与过滤后实际可见的树节点。

默认值由运行时计算

信号 ​

签名作用
nodeDragStarted(var node)

开始拖动节点时触发,node 为被拖动的节点。

checked(var node, var state)

节点勾选变化时触发,node 为节点,state 包含勾选结果。

loadFailed(var node, var error)

节点异步加载失败时触发,node 为节点,error 为错误信息。

nodeDragLeft(var node, var target)

拖动离开目标节点时触发,node 为被拖动节点,target 为离开的节点。

nodeDragOver(var node, var target)

在目标节点上拖动时触发,node 为被拖动节点,target 为目标节点。

nodeSelected(var node, string key)

选中节点时触发,node 为节点数据,key 为节点标识。

currentChanged(var node, string key)

当前节点变化时触发,node 为当前节点,key 为节点标识。

nodeContextMenu(var node, var mouse)

右击节点时触发,node 为节点,mouse 为鼠标事件。

nodeDragEntered(var node, var target)

拖动进入节点时触发,node 为被拖动节点,target 为目标节点。

nodeExpanded(string key, bool expanded)

节点展开状态改变时触发,包含节点标识和 expanded 状态。

nodeDropped(var node, var target, string position)

节点完成放置时触发,node 为被拖动节点,target 为目标节点,position 为放置位置。

nodeDragEnded(var node, var target, string position)

节点拖动结束时触发,node 为被拖动节点,target 为目标节点,position 为放置位置。

checkChanged(var node, bool checked, bool halfChecked)

节点勾选状态变化时触发,node 为节点,checked 为是否勾选,halfChecked 为是否半选。

方法 ​

签名作用
getCurrentKey()

返回当前节点的标识。

getCurrentNode()

返回当前节点的数据对象。

getNode(key)

返回 key 对应的节点条目,包含节点数据及层级信息。

getHalfCheckedKeys()

返回所有半选节点的标识。

toggle(key)

切换当前展开或选中状态;需要标识时传入目标项的标识。

isLoading(key)

判断 key 对应节点是否正在加载。

isChecked(key)

判断指定项目是否勾选,返回布尔值。

isHalfChecked(key)

判断 key 对应节点是否为半选状态。

findNode(key)

返回 key 对应的节点数据;找不到时返回 null。

remove(node)

删除 node 对应的节点。

filter(value)

将 value 作为树节点筛选文字。

setCurrentNode(node, expandParents)

设置当前节点;expandParents 控制是否展开其祖先节点。

isExpanded(key)

判断指定项目是否展开,返回布尔值。

setCheckedNodes(nodes)

将 nodes 指定的节点集合设为勾选结果。

updateKeyChildren(key, children)

将 key 对应节点的子节点替换为 children。

insertAfter(data, reference)

在 reference 节点之后插入 data。

insertBefore(data, reference)

在 reference 节点之前插入 data。

getHalfCheckedNodes()

返回所有半选节点的数据对象。

getCheckedKeys(leafOnly)

返回已勾选节点的标识;leafOnly 为 true 时仅包含叶子节点。

setCurrentKey(key, expandParents)

按 key 设置当前节点;expandParents 控制是否展开其祖先节点。

select(key)

选择给定索引或标识对应的项目。

getCheckedNodes(leafOnly, includeHalfChecked)

返回已勾选节点;leafOnly 限制为叶子节点,includeHalfChecked 控制是否包含半选节点。

append(data, parentNode)

在 parentNode 下追加 data 节点。

moveNode(key, targetKey, position)

将 key 对应节点移动到 targetKey 附近,position 指定相对位置。

setCheckedKeys(keys, leafOnly)

按 keys 设置勾选结果;leafOnly 为 true 时仅处理叶子节点。

setExpanded(key, expanded)

设置 key 对应节点的展开状态 expanded。

loadNode(key)

请求加载 key 对应节点的子节点。

setChecked(key, value, deep)

设置 key 对应节点的勾选状态 value;deep 控制是否同时处理后代节点。

基于 MIT 许可发布 · 第三方资源遵循其各自许可