UE4C++怎么在Slate的垂直框里加入自己实现的UWidget
时间: 2024-11-25 11:16:14 浏览: 24
在UE4的C++中,要在Slate的垂直框(VerticalBox)里加入自己实现的UWidget,你需要遵循以下步骤:
1. 首先,确保你的UWidget已经正确创建并编译。
2. 在你的C++代码中,包含必要的头文件:
```cpp
#include "Widgets/SVerticalBox.h"
#include "Blueprint/UserWidget.h"
```
3. 创建一个指向你的UWidget的指针,并初始化它。例如,如果你的UWidget类名为`MyCustomWidget`,你可以这样做:
```cpp
TSubclassOf<UUserWidget> WidgetClass = MyCustomWidget::StaticClass();
UUserWidget* MyWidget = CreateWidget<UUserWidget>(GetWorld(), WidgetClass);
```
4. 创建一个SVerticalBox,并将你的UWidget添加到这个垂直框中。这可以通过使用`AddSlot()`方法来完成,该方法返回一个对SVerticalBox的引用,然后你可以链式调用`AddWidget()`来添加你的UWidget:
```cpp
TSharedRef<SVerticalBox> VerticalBox = SNew(SVerticalBox);
VerticalBox->AddSlot()
.AutoHeight()
[
MyWidget->TakeWidget()
];
```
5. 最后,将这个SVerticalBox添加到你的UI界面中。这通常涉及到获取一个现有的窗口或容器,然后将SVerticalBox作为其内容:
```cpp
if (TSharedPtr<SWindow> RootWindow = GEngine->GameViewport->GetWindow())
{
RootWindow->SetContent(VerticalBox);
}
```
通过以上步骤,你就可以在UE4的Slate UI框架中成功地添加你自己实现的UWidget到垂直框中了。
阅读全文