我的非UObject类持有
UUserWidget* Instance;
那么,我如何从中获得一个儿童小部件(例如:UTextBlock(
简而言之,我想要这样的东西:Instance->GetChildrenWidgetByName("UTextBlock_Name")
在4.26.2中,如果您知道孩子的名字,则可以执行此操作
Instance->WidgetTree->FindWidget(WidgetFName);
或者这个,如果你只是想通过键入找到它
TArray<UWidget*> Children;
Instance->WidgetTree->GetAllWidgets(Children);
for(auto Child : Children)
{
if(UTextBlock* Block = Cast<UTextBlock>(Child))
{
//return Block
//or add to some TArray if you want to find multiple
}
}
有关更多信息,请查看文档
顺便说一句,获取指向小部件子级的指针的一种非常方便的方法是在UPROPERTY
中使用meta = (BindWidget)
,这里是