Get Owning Actor of UI Widget?

Many ways to do it.

You can create a direct reference to the parent actor (self) inside the widget:

And then make something magical with the widget’s text block to display it:

Any changes to the cHealthComponent’s PlayerHealth variable are now reflected in the widget’s text block. It works fine providing you keep things safe - as in, do not destroy the actor, otherwise the widget will start feeding on the null OwningActor reference. [HR][/HR]
You can have the actor pull data from the component and feed it to the widget. The widget has its own custom event (UpdateHealth) and handles it accordingly, setting and formatting text.

[HR][/HR]
Another method is to have the component broadcast data via a dispatcher (does not have to be on Tick, of course - event driven is preferable where applicable):

The actor’s job here is to hook up the dispatched call to a custom event (with a matching signature) in the widget, creating a listener of sorts. This works well; if the widget gets destroyed, the broadcast keeps blasting but no one is listening; if the actor gets destroyed, the widget is listening but no one is broadcasting. No harm done.

You can bind and unbind events from dispatchers dynamically.

edit:

You can also update the native widget elements directly:

I generally try not to make widgets responsible for too many things. Widgets can format incoming data and set children properties but I’d avoid giving them direct access to actors.
[HR][/HR]
And there’s this thing, of course. As seen in many tutorials.

Many widgets allow for property function binding (or just a variable, which is fine). These get executed every frame, not a fan. And you need to slap *isValid *everywhere.