【发布时间】:2021-07-12 09:24:52
【问题描述】:
我的非 UObject 类拥有一个
UUserWidget* Instance;
那么我如何从中获取子小部件(例如:UTextBlock)
简而言之,我想要这样的东西:
Instance->GetChildrenWidgetByName("UTextBlock_Name")
【问题讨论】:
标签: c++ unreal-engine4 unreal-umg
我的非 UObject 类拥有一个
UUserWidget* Instance;
那么我如何从中获取子小部件(例如:UTextBlock)
简而言之,我想要这样的东西:
Instance->GetChildrenWidgetByName("UTextBlock_Name")
【问题讨论】:
标签: c++ unreal-engine4 unreal-umg
在 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
}
}
更多信息请查看documentation
另一方面,获取小部件子级指针的一种非常方便的方法是在UPROPERTY 中使用meta = (BindWidget) - 更多关于here
【讨论】: