admin 发表于 2024-3-24 21:41:52

UE4 UI控件遍历 代码 C++

#include "Blueprint/UserWidget.h"
#include "Components/Button.h"

TArray<UUserWidget*> GetAllUserWidgets()
{
    TArray<UUserWidget*> UserWidgets;
    UGameplayStatics::GetAllActorsOfClass(GetWorld(), UUserWidget::StaticClass(), UserWidgets);
    return UserWidgets;
}

void TraverseUIButtons()
{
    TArray<UUserWidget*> AllWidgets = GetAllUserWidgets();
    for (UUserWidget* Widget : AllWidgets)
    {
      TArray<UWidget*> AllChildren;
      Widget->GetAllWidgets(AllChildren);

      for (UWidget* ChildWidget : AllChildren)
      {
            if (UButton* Button = Cast<UButton>(ChildWidget))
            {
                // 这里你可以对Button进行你需要的操作
                // 例如:Button->SetVisibility(ESlateVisibility::Collapsed);
            }
      }
    }
}

页: [1]
查看完整版本: UE4 UI控件遍历 代码 C++