[UE4圖文系列]8_2.樹(shù)形圖 C++版(一)
經(jīng)過(guò)上一篇的說(shuō)明,已經(jīng)對(duì)樹(shù)形圖的三個(gè)組成要素(Item,Entry,TreeView)進(jìn)行了簡(jiǎn)單的講解,本篇正式開(kāi)始C++版的教程.
1.創(chuàng)建以下三個(gè)C++類(lèi)
(1)UTreeViewItemBase(基類(lèi)UObject)
該類(lèi)型為樹(shù)形圖三要素中的Item
①Level:決定Item對(duì)應(yīng)Entry的在樹(shù)形圖中的層級(jí)結(jié)構(gòu),如下圖

②Label:Entry顯示的文本
③SelfActor:? ? ? Actor<------>Item<------>Entry. Item是Actor和Entry之間的橋梁,如下圖

④ChildrenData:存儲(chǔ)本級(jí)Item的子級(jí)Item對(duì)象
(2)UEntryWidgetBase(基類(lèi)UUserWidget,實(shí)現(xiàn)接口IUserObjectListEntry)
該類(lèi)型為樹(shù)形圖三要素中的Entry
①CheckBox,TextBlock,HorBox控件,如下圖

②ListItemObject:Entry對(duì)應(yīng)的Item
(3)UTreeViewPanelBase(基類(lèi)UUserWidget)
該類(lèi)型為樹(shù)形圖三要素中的TreeView
2.成員函數(shù)說(shuō)明
(1)UTreeViewItemBase?
類(lèi)中定義以下成員函數(shù)
解析:
①I(mǎi)nitChildren
該成員函數(shù)用于查找SelfActor存在多少個(gè)子級(jí)Actor,然后為每個(gè)子級(jí)創(chuàng)建子級(jí)Item,并將子級(jí)Item與子級(jí)Actor建立對(duì)應(yīng)關(guān)系.
ps:初始化子級(jí)時(shí)要注意,子級(jí)可能也有子級(jí),所以需要通過(guò)遞歸逐級(jí)往下初始化
②SetChildrenHiddenInGame
該成員函數(shù)用于控制子級(jí)Actor(包含自身)的顯隱性,如

③CacheOriginalMaterials
該函數(shù)用于緩存SelfActor的初始材質(zhì)
④OnSelected
該函數(shù)實(shí)現(xiàn)了點(diǎn)擊Entry,使其對(duì)應(yīng)的Actor高亮(被選中效果)?,效果如參考圖2-1
⑤UnSelected
該函數(shù)實(shí)現(xiàn)了取消選中效果,使其對(duì)應(yīng)的Actor由選中高亮效果恢復(fù)到初始材質(zhì)
⑥FindSubItemByGivenActor
該函數(shù)用于查找與給定Actor對(duì)應(yīng)的Item,用于點(diǎn)擊Actor反向定位樹(shù)形圖中的Entry,如下圖

UTreeViewItemBase說(shuō)明到此結(jié)束,后續(xù)內(nèi)容會(huì)在第二篇更新,敬請(qǐng)期待