当前位置: 首页 > news >正文

UE4和C++ 开发-C++与UMG的交互2(C++获取UMG的属性)

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++中声明,在蓝图中进行定义)

http://www.lryc.cn/news/191587.html

相关文章:

  • Ubuntu 22.04.3 LTS单机私有化部署sealos
  • #力扣:2236. 判断根结点是否等于子结点之和@FDDLC
  • 暴力递归转动态规划(九)
  • Linux知识点 -- 高级IO(一)
  • Android AMS——内存回收机制(十二)
  • 1600*C. Add One(数位DP找规律)
  • 干货丨送你几个实用PR编辑技巧(二) 优漫动游
  • [每周一更]-(第67期):docker-compose 部署php的laravel项目
  • vsCode 忽略 文件上传
  • 197、管理 RabbitMQ 的虚拟主机
  • [NCTF2019]SQLi regexp 盲注
  • 通过webpack创建并打包js库到npm仓库
  • 【Java 进阶篇】深入了解JavaScript中的函数
  • 谷歌 Chrome 浏览器正推进“追踪保护”功能
  • Excel 自动提取某一列不重复值
  • 【TensorFlow2 之011】TF 如何使用数据增强提高模型性能?
  • Hadoop 安装教程 (Mac m1/m2版)
  • Docker - 网络模式与容器网络互连
  • 【基础篇】三、Flink集群角色、系统架构以及作业提交流程
  • 第一个2DGodot游戏-从零开始-逐步解析
  • 大数据学习(7)-hive文件格式总结
  • GRU的 电影评论情感分析 - python 深度学习 情感分类 计算机竞赛
  • kafka简述
  • 《RISC-V体系结构编程与实践》的benos_payload程序——mysbi跳转到benos分析
  • ad5665r STM32 GD32 IIC驱动设计
  • TensorFlow入门(十六、识别模糊手写图片)
  • CSwin Transformer 学习笔记
  • Linux上通过mysqldump命令实现自动备份
  • v-model与.sync的区别
  • Linux---进程(1)