
经过上一篇的说明,已经对树形图的三个组成要素(Item,Entry,TreeView)进行了简单的讲解,本篇正式开始C++版的教程.
1.创建以下三个C++类
(1)UTreeViewItemBase(基类UObject)
【资料图】
该类型为树形图三要素中的Item
①Level:决定Item对应Entry的在树形图中的层级结构,如下图
②Label:Entry显示的文本
③SelfActor: Actor<------>Item<------>Entry. Item是Actor和Entry之间的桥梁,如下图
④ChildrenData:存储本级Item的子级Item对象
(2)UEntryWidgetBase(基类UUserWidget,实现接口IUserObjectListEntry)
该类型为树形图三要素中的Entry
①CheckBox,TextBlock,HorBox控件,如下图
②ListItemObject:Entry对应的Item
(3)UTreeViewPanelBase(基类UUserWidget)
该类型为树形图三要素中的TreeView
2.成员函数说明
(1)UTreeViewItemBase
类中定义以下成员函数
解析:
①InitChildren
该成员函数用于查找SelfActor存在多少个子级Actor,然后为每个子级创建子级Item,并将子级Item与子级Actor建立对应关系.
ps:初始化子级时要注意,子级可能也有子级,所以需要通过递归逐级往下初始化
②SetChildrenHiddenInGame
该成员函数用于控制子级Actor(包含自身)的显隐性,如
③CacheOriginalMaterials
该函数用于缓存SelfActor的初始材质
④OnSelected
该函数实现了点击Entry,使其对应的Actor高亮(被选中效果) ,效果如参考图2-1
⑤UnSelected
该函数实现了取消选中效果,使其对应的Actor由选中高亮效果恢复到初始材质
⑥FindSubItemByGivenActor
该函数用于查找与给定Actor对应的Item,用于点击Actor反向定位树形图中的Entry,如下图
UTreeViewItemBase说明到此结束,后续内容会在第二篇更新,敬请期待
标签: