Let’s say you have an existing UMG UI which you’ve created in C++ already* (derived from UUserWidget), and you want to add child widgets at runtime. Imagine you have an inventory UI with a container of some kind (I’ll use a vertical box in this example) and you want to add an item at which the player is aiming. You could add a method to your UUserWidget-derived class like this (I’ve used a text block for the example but you can use any widget derived from UWidget):
void UMyUserWidget::AddInventoryItem(FText ItemName)
{
auto NewInventoryItemWidget = WidgetTree->ConstructWidget<UImage>();
InventoryVerticalBox->AddChildToVerticalBox(NewInventoryItemWidget);
}
That’s it!
* Mike Stevanovic has a great tutorial for creating UUserWidgets and adding them to the viewport using C++.