1、...C++获取UMG的属性
1.1、第一种方法:通过名称获取控件。
void UMyUserWidget::NativeConstruct()
{
Super::NativeConstruct();
//通过名字,获取蓝图控件中的按钮引用。
CtnClic = Cast<UButton>(GetWidgetFromName(TEXT("Button_44")));
if (CtnClic)
{
//绑定到自定义函数
CtnClic->OnClicked.AddDynamic(this, &UMyUserWidget::TestButtonClick);
}
}
void UMyUserWidget::TestButtonClick()
{
//测试代码
UE_LOG(LogTemp, Log, TEXT("dddddd"));
//获取预定义属性后,还要转化为标准属性才能进行操作
UCanvasPanelSlot* Slot = Cast<UCanvasPanelSlot>(CtnClic->Slot);
if (Slot)
{
}
}
优点:可以拿到对象引用,调用系统预定义好的事件(函数)。
缺点:无法拿到在蓝图中创建的属性,可以C++创建控件父类,属性也在C++中定义,这样的话可以拿到。
1.2、第二种方法:通过宏绑定控件(控件类型和名称必须和蓝图添加的一致,并且在蓝图中添加同名同类型的控件)
步骤1:在C++中创建指针
//第二种方法 这两个标记必须要添加!!!
UPROPERTY(BlueprintReadWrite, meta=(BindWidget))
class UButton* TestButton2;
步骤2:在蓝图中创建对象,名字为C++中的变量名。(相当于在C++中声明,在蓝图中进行定义)文章来源:https://www.toymoban.com/news/detail-713047.html
文章来源地址https://www.toymoban.com/news/detail-713047.html
到了这里,关于UE4和C++ 开发-C++与UMG的交互2(C++获取UMG的属性)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!