Hi,
I’m creating a function in C++ that create UMG widgets at runtime. The problem is that I don’t understand how to add slot property to a widget.
Here I explain my example:
// I create a custom UCanvasPanel where I create an InitWithData funciton for add items
void USelectorBox::InitWithData(
FTPArticle item){
UCanvasPanelSlot* imageSlot = NewObject<UCanvasPanelSlot>(UCanvasPanelSlot::StaticClass());
imageSlot->Parent = this;
imageSlot->SetSize(FVector2D(200, 200));
imageSlot->SetPosition(FVector2D(0, 0));
UImage *backImage = NewObject<UImage>(UImage::StaticClass());
backImage->Slot = imageSlot;
backImage->SetColorAndOpacity(FLinearColor(1, 0, 0, 1));
UCanvasPanelSlot* buttonSlot = NewObject<UCanvasPanelSlot>(UCanvasPanelSlot::StaticClass());
buttonSlot->SetSize(FVector2D(180, 180));
buttonSlot->SetPosition(FVector2D(10, 10));
UButton *button = NewObject<UButton>(UButton::StaticClass());
button->Slot = buttonSlot;
FString ImagePath = item.Texture;
UTexture2D* Texture = Cast<UTexture2D>(StaticLoadObject(UTexture2D::StaticClass(), NULL, *(ImagePath)));
FSlateBrush itemBrush = UWidgetBlueprintLibrary::MakeBrushFromTexture(Texture);
itemBrush.ImageSize.X = 180;
itemBrush.ImageSize.Y = 180;
itemBrush.DrawAs = ESlateBrushDrawType::Image;
FButtonStyle style;
style.SetNormal(itemBrush);
style.SetHovered(itemBrush);
style.SetPressed(itemBrush);
button->WidgetStyle = style;
AddChild(backImage);
AddChild(button);
};
This code compile, but the slot property are not added to the widgets. Whats wrong in this code?
Thnaks