[UE4图文系列]8_4.树形图 C++版(三)
2023-08-10 11:43 作者:埃罗芒阿Sensal | 我要投稿
书接上回...
(3)UTreeViewPanelBase
NativeConstruct函数实现
类中定义以下成员函数
解析:
①FindParentActor

GivenActor:选中的Actor(例如被鼠标点击到的)
bFindTopLevelParent:
true表示查找层级结构中的最上级,如传入参考图3-1中的Cone,返回Cube
false表示查找结构中的上级,如传入Cone返回Sphere
②StartSelect(选取场景中Actor)
③OnSelectActor(选中Actor)
注1:判断选中的Actor的父级Actor是否是上次选中的(即是否切换目标),如下图3-2

注2:在未切换目标的情况下,将未被选中的子Entry设为未选择状态(未高亮)
注3:将选中的Entry设为已选中(高亮)
效果如下图3-3

④ExpandItem(展开单个) ExpandAllItems(展开所有Item)
引擎提供的ExpandAll并不能真正的展开所有的层级结构

调用引擎提供的ExpandAll仅能展开了一层结构,效果如3-5

为此我们需要自行实现ExpandAll功能,代码如下
⑤CollapseAllItem(折叠收起所有Item)
⑥RefreshTreeView(刷新层级结构)
注1:Treeview通过GetListItems获得的Item数组中,第0个元素表示根Item
注2:刷新时清空原有的Item
注3:默认刷新时展开所有层级,可根据自身需求选择,不想展开就是执行ExpandAllItems
⑦OnGetItemChildren
该函数在Treeview执行AddItem时自动触发.
至此树形图三大组成部分代码更新完毕,下篇会讲解用法.未完待续.....