虚幻4之Slate学习三 —— 创建Slate控件

  1. 本章简介
  2. 用C++编写Slate控件
    1. SOverlay
      1. HAlign和VAlign
      2. Padding
      3. FillWidth和FillHeight
      4. +SOverlay::Slot()
    2. SImage
    3. SBox
    4. SBorder
    5. STextBlock
    6. SVerticalBox
    7. SCheckBox
    8. SSlider
  3. 自定义DPI
  4. 相关链接

本章简介

  • 如何利用C++编写Slate控件
  • 介绍常用的Slate控件
  • 自定义DPI

用C++编写Slate控件

ChildSlot
[
    SNew(SImage)
    .Image(&MySlateStyle->BackGroupBrush)

];

只需要在ChildSlot中编写相关代码就可以创建控件。不同控件有不同的属性,下面将要介绍一些常用的控件,值得注意的是对于需要在游戏中动态控制的控件,需利用SAssignNew,再通过共享指针保存起来

SOverlay

  • 用于实现重叠部件,可以创建任意个插件,即可以放任意个子控件

HAlign和VAlign

  • 设计布局方式

Padding

  • 设计边缘空隙

FillWidth和FillHeight

  • 填充宽度和高度

+SOverlay::Slot()

  • +SOverlay::Slot()与SNew().AddSlot等价。增加的插槽下用于放子控件
SNew(SOverlay)
+ SOverlay::Slot()
//这些属性设计是应用于插槽
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
     SNew(SImage)
     //image()用于添加笔刷
     .Image(&MySlateStyle->BackGroupBrush)
]

SImage

  • Image()通过加笔刷来显示图片
  • ColorAndOpacity()改变颜色和透明度

SBox

  • 只能添加一个子组件
  • WidthOverride和HeightOverride设置长宽
  • 对应UMG中的SizeBox

SBorder

  • 可放子控件,可显示图片
  • 用BorderImage添加图片

STextBlock

  • 用于添加文字
  • Font()设置字体(不是指针)
  • Text()设置显示文字

SVerticalBox

  • 垂直容器
  • 可以加插槽
  • +SVerticalBox::Slot == AddSlot

SCheckBox

  • OnCheckStateChanged:传入函数指针(委托),状态改变时调用

SSlider

  • 滑动条
  • 滑动条样式用 FSliderStyle
  • OnValueChanged(Delegate) 此为SLATE_EVENT,里面应该传入一参数(滑动条value)委托,每次滑动条value改变时调用。
  • SetValue()设置滑动位置,范围[0f,1f]

自定义DPI

相关链接