在UE4蓝图开发中,我们如果使用C++来开发UI功能的话,经常要通过内部成员变量和蓝图的Widget关联起来操作,常用的方法是使用UUserWidget中的GetWidgetFromName方法
1.比如我们要在蓝图里面使用一个EditableTextBox输入框,可以现在成员变量里面定义:
public:
UFUNCTION()
void OnBtnTestClick();
private:
UButton* ButtonTest;
然后在NativeConstruct方法里进行绑定
void UMyUserWidget::NativeConstruct()
{
Super::NativeConstruct();
if(UButton* TempTestButton = Cast<UButton>(GetWidgetFromName(TEXT("BtnTest"))))
{
FScriptDelegate Test;
Test.BindUFunction(this, "OnBtnTestClick");
TempTestButton->OnClicked.Add(Test);
}
}
void UMyUserWidget::OnBtnTestClick()
{
GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Green,TEXT("Test!!!"));
}
然后就可以通过操作TxtUserName来调用其相应的接口