You question is somewhat pale on details. Such as do you show the address in the main widget. Which seems logic as you have the address field (why else do you need the address field?), but then again you call flush() in the main to get the changed address from the dialog, which suggests the (new) address is not shown in the main widget when you close the address dialog there would still be the old address in the main widget, as didn't mention if you do some kind of updating.
So based on the information you could make the Address Widget also make an Editor
widget and in the UserWidget
for the field address use the Address Widget to set and get the values for address in the User object. That way when you call flush() you automatically get the results from the Address Widget.