前言

实现编辑器动态添加界面元素,例如button之类的

效果

实现

.h文件添加定义

.cpp文件实现逻辑

  1. 界面排版
TSharedRef<SDockTab> FDynamicCreateToolModule::OnSpawnPluginTab(const FSpawnTabArgs& SpawnTabArgs)
{TSharedRef<SDockTab> dockTabSharedRef =SNew(SDockTab).TabRole(ETabRole::NomadTab)[SNew(SVerticalBox)+ SVerticalBox::Slot()[SNew(SHorizontalBox)+ SHorizontalBox::Slot()[SNew(SButton).Text(FText::FromString("Add")).OnClicked_Raw(this, &FDynamicCreateToolModule::AddButtonOnClick)]+ SHorizontalBox::Slot()[SNew(SButton).Text(FText::FromString("Remove")).OnClicked_Raw(this, &FDynamicCreateToolModule::RemoveButtonOnClick)]]+ SVerticalBox::Slot()[SAssignNew(VerticalBoxPtr, SVerticalBox)]];return dockTabSharedRef;
}
  1. 按钮点击
FReply FDynamicCreateToolModule::AddButtonOnClick()
{ButtonCount += 1;UpdateDynamicButtonCount();return FReply::Handled();
}
FReply FDynamicCreateToolModule::RemoveButtonOnClick()
{ButtonCount -= 1;if (ButtonCount < 0){ButtonCount = 0;}UpdateDynamicButtonCount();return FReply::Handled();
}
void FDynamicCreateToolModule::UpdateDynamicButtonCount()
{VerticalBoxPtr->ClearChildren();for (int index = 0; index < ButtonCount; index++){int id = index;VerticalBoxPtr->AddSlot()[SNew(SButton).Text(FText::FromString(FString::FromInt(id))).OnClicked(FOnClicked::CreateLambda([id]{UE_LOG(LogTemp, Display, TEXT("OnClick: %d"), id);return FReply::Handled();}))];VerticalBoxPtr->AddSlot()[SNullWidget::NullWidget];}
}

【UE】Slate编辑器动态添加Button相关推荐

  1. Android 动态添加Button(1)

    这是一个非常简单的动态添加Button的例子: package com.kkkk.llll;import android.app.Activity; import android.os.Bundle; ...

  2. JS 编辑器动态添加select 鼠标划过显示下拉列表

    核心知识点:   鼠标事件: onmousemove  鼠标移上  onmouseleave 鼠标移开 (注意区别开onmouseover和 onmouserout以及onmouseenter) co ...

  3. html lt table 设置数据,vue_+_element_ui_动态添加table数据

    v插新,都次过是宗现制的前搭待个断前能绿和ue + element ui 动态添加tab直分调浏器代,刚求的一学础过功互有解小久宗点差维含数如数le数据 html为 &l事开目行会标以近情发架 ...

  4. Android 在布局容器中动态添加控件

    这里,通过一个小demo,就可以掌握在布局容器中动态添加控件,以动态添加Button控件为例,添加其他控件同样道理. 1.addView 添加控件到布局容器 2.removeView 在布局容器中删掉 ...

  5. 实时监听div,input内容改变并获取值(包括脚本动态添加)

    在DOM中可以通过DOMNodeInserted和DOMNodeRemoved这两个事件来监视DOM元素的插入和移除. <!doctype html> <html lang=&quo ...

  6. vue 动态添加click_vue,在模块中动态添加dom节点,并监听

    vue向数组中动态添加数据 vue中数据更新通过v-model实现,向数组中添加数据通过push()实现,向shortcuts数组中动态添加newShortcut对象中的title和action th ...

  7. MFC中动态创建button及添加响应事件

    MFC中动态创建button及添加响应的事件,主要步骤如下:  1.在头文件(**Dlg.h)中添加一个CButton类型,  例如:CButton btn;  2.在(**Dlg.cpp)的OnIn ...

  8. 获取滑动条位置,动态调整对话框显示位置;为动态添加的button添加click事件

    1.获取滑动条位置,动态调整对话框显示位置 应用场景:页面上有三个按钮,所处位置高度不同,有的按钮需要移动滑动条才能看到,各个按钮点击后要弹出同一个对话框,为了保证对话框始终显示在当前视野的中央位置, ...

  9. E9流程表单中动态自定义添加button js代码

    <script> // dom操作添加button到自定义属性单元格 clickUid中 // var a=jQuery("#clickUid").val(" ...

最新文章

  1. Android中的网络(字节跳动)
  2. chrome打不开12306
  3. php将中文插入数据库出现乱码
  4. 036、Linux下ipmitool命令
  5. Android UI编程之自定义控件初步(下)——CustomEditText
  6. [XSY4170] 妹子(线段树上二分)
  7. html 01前沿-web介绍
  8. Move_base理解
  9. 大二计算机应用基础1200体会,计算机应用基础1200题.doc
  10. 求解组合问题的一个迭代算法
  11. 深度学习自学(二十四):华为Atlas人工智能计算平台
  12. GIS_gdal geotiff文件与C# 数组array之间的转换
  13. Firefox浏览Flash网页乱码的解决方案
  14. 微博中微服务缓存_微服务实践分享(5)缓存中心
  15. 《JAVA与模式》— 原型模式
  16. 清理c盘、c盘哪些文件可以删、图形显示文件大小软件
  17. 创业能力之市场细分:小明的保时捷4S店的故事
  18. jsp中使用setAttribute发生错误
  19. 用golang做繁简体转换
  20. java中到底该不该用@author标识作者?

热门文章

  1. 扛过字节Java研发岗4轮面试,收到sp offer(月薪35k)!揭秘字节面试流程及考题(附带答案)
  2. Eclipse Memory Analyzer 使用技巧
  3. android和ios测试环境搭建,iOS自动化测试环境搭建
  4. 【效率办公】推荐一款非常好用的电脑桌面便签
  5. Java8-19新特性一览 ,认识全新的前沿技术
  6. 服务器文件怎么删,怎么删除服务器文件
  7. Information Retrieval(信息检索)笔记02:Preprocessing and Tolerant Retrieval
  8. Invalid Java package name: '1' is not a valid Java identifier eclipse创建sevlet时,无法创建
  9. 微信小程序面试题总结
  10. 使用云效应用交付平台 AppStack进行应用管理