按是否可以添加子控件,可以分为以下几种
- 不能添加子控件的控件,如SImage,STextBlock.
- 可以添加一个子控件的控件。如SButton,SBorder.
相关代码如下:
/** The slot that contains this widget's descendants.*/
FSimpleSlot ChildSlot;
这种控件中会存储一个子控件。
- 可以添加多个子控件的控件。也可以称为窗口,如SCanvasPanel,SOverlay。
重要的一点:
1 每一个控件都属于一个slot,这个slot是由其父控件提供的。不同的slot可以影响不同的slot属性
每一个控件属于什么Slot可以从下图位置上看到:
其中slot类型常用的分以下几种:
CanvasPanel_Slot,GridPanel_Slot,HorizontalBox_Slot,Overlay_Slot等。
相关的代码:
virtual FChildren* GetChildren() override = 0;
按控件表现可以分为两种
- 表现内容的控件,如SButton,SImage,SBorder,STextBlock等
这些控件是可以表现内容在上面,如添加文字或图片
- 容器/布局控件,如SCanvasPanel,SOverlay等。
没有表现内容,只是做为控件的布局
另一个不太重要的分类:
- 系统自带的控件。
- 系统组合的控件。
- UMG组合的控件。
网友评论