This is one of the oldest problems I’ve faced and has annoyed me greatly.
I support a feature request for this.
Here’s a step-by-step guide on how I created my own fix for it.
- Create parent widget, including functionality and design elements
- Copy the widget and rename it (I usually add _child)
- Delete every function from the _child widget (functions you created in the parent)
- Rename all your widget design elements (I change their variable names to have an _c)
- Delete all variables which are not widgets (bools, ints, etc)
- Re-parent blueprint to your parent widget
- Modify your child blueprint on construct and make sure you set your _c variables to the parent variables (so if you have a border in your parent named frame and the one in child named frame_c, on construct set frame to frame_c)
Now you have access to all your functions and variables from your parent widget in a child widget that you can manipulate design elements for.
From this point, you can create multiple child widgets with various changes by simply duplicating the _child widget.