I have had a play this morning....
@Bonnie
I tried out your suggestion. It seems to work, perfectly! You get the bonus points for providing what seems like the correct solution. However, I cannot rely on not altering the UI in Designer, intentionally or unintentionally, over time, and finding it messes up the two-widgets-in-one-cell :(
@mrjj
I have gone for a solution related to yours. But changed to be a 3-column QGridLayout (didn't seem to work right with a QHboxLayout), with layoutColumnStretch 2,6,2, so 20%-60%-20%, like:
<layout class="QGridLayout" name="gridLayout_2" columnstretch="2,6,2">
<item row="0" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</spacer>
</item>
<item row="0" column="1" alignment="Qt::AlignHCenter">
<widget class="QLabel" name="label">
</widget>
</item>
<item row="0" column="2" alignment="Qt::AlignRight">
<widget class="QCheckBox" name="cbLockMode">
</widget>
</item>
</layout>
It may be this just works given the widths of my particular label & checkbox, but I have tried stretching the container and things seem to resize maintaining the label at approximately in the center of the whole.
Thank you both, this will have to do as a reasonable compromise.