Hello.
I have a problem with menu based on slate. I have used example from https://wiki.unrealengine.com/Slate_Tabs .and added creating tabs into separate function. If I constructed tabs in separate function, I will receive:
If I constructed directly in Construct(const FArguments& InArgs) function, I will receive:
My function that separately build tabs menu
void SMainMenuUI::BuildSelectLevelMenu()
{
m_SelectLevelBox->ClearChildren();
m_SelectLevelBox->AddSlot()
.FillHeight(0.1);
m_SelectLevelBox->AddSlot()
.FillHeight(0.8)
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.FillWidth(0.3)
+ SHorizontalBox::Slot()
.FillWidth(0.4)
// ... and other code from slate tabs example
}
How I used it:
void SMainMenuUI::Construct(const FArguments& InArgs)
{
MainMenuHUD = InArgs._MenuHUD;
//bind scale
UIScale.Bind(this, &SMainMenuUI::GetUIScale);
ChildSlot
.VAlign(VAlign_Fill)
.HAlign(HAlign_Fill)
SNew(SDPIScaler)
.DPIScale(UIScale)
SNew(SOverlay)
+SOverlay::Slot()
SAssignNew(m_SelectLevelBox, SVerticalBox)
]
]
];
//call after SAssignNew(m_SelectLevelBox, SVerticalBox)
BuildSelectLevelMenu();
}
and how I build tabs menu directly in Construct function:
void SMainMenuUI::Construct(const FArguments& InArgs)
{
MainMenuHUD = InArgs._MenuHUD;
//bind scale
UIScale.Bind(this, &SMainMenuUI::GetUIScale);
ChildSlot
.VAlign(VAlign_Fill)
.HAlign(HAlign_Fill)
SNew(SDPIScaler)
.DPIScale(UIScale)
SNew(SOverlay)
//tabs
+SOverlay::Slot()
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.FillHeight(0.1)
+ SVerticalBox::Slot()
.FillHeight(0.8)
SNew(SHorizontalBox)
+ SHorizontalBox::Slot()
.FillWidth(0.3)
+ SHorizontalBox::Slot()
.FillWidth(0.4)
// ... and other code from slate tabs example
}
What I am doing wrong? Please help me with that