欢迎光临散文网 会员登陆 & 注册

[UE4图文系列]8_4.树形图 C++版(三)

2023-08-10 11:43 作者:埃罗芒阿Sensal  | 我要投稿

书接上回...

(3)UTreeViewPanelBase

NativeConstruct函数实现

类中定义以下成员函数

解析:

①FindParentActor

3-1

GivenActor:选中的Actor(例如被鼠标点击到的)

bFindTopLevelParent:

true表示查找层级结构中的最上级,如传入参考图3-1中的Cone,返回Cube

false表示查找结构中的上级,如传入Cone返回Sphere

②StartSelect(选取场景中Actor)

③OnSelectActor(选中Actor)

注1:判断选中的Actor的父级Actor是否是上次选中的(即是否切换目标),如下图3-2

3-2

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

注3:将选中的Entry设为已选中(高亮)

效果如下图3-3

3-3

④ExpandItem(展开单个) ExpandAllItems(展开所有Item)

引擎提供的ExpandAll并不能真正的展开所有的层级结构

3-4

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

3-5

为此我们需要自行实现ExpandAll功能,代码如下

⑤CollapseAllItem(折叠收起所有Item)

⑥RefreshTreeView(刷新层级结构)

注1:Treeview通过GetListItems获得的Item数组中,第0个元素表示根Item

注2:刷新时清空原有的Item

注3:默认刷新时展开所有层级,可根据自身需求选择,不想展开就是执行ExpandAllItems

⑦OnGetItemChildren

该函数在Treeview执行AddItem时自动触发.

至此树形图三大组成部分代码更新完毕,下篇会讲解用法.未完待续.....



[UE4图文系列]8_4.树形图 C++版(三)的评论 (共 条)

分享到微博请遵守国家法律