Alas, that does not seem to do the trick.

I have hit upon a work-around that I can make use of for the time being.

If the top-level layout of the widget is altered then the widget will report the correct sizeHint to the menu prior to being shown. However, if the contents of only child widget layouts are altered, changes do not percolate up until the widget is actually being shown (too late).

Forcing either only a single top-level layout or a change to the top-level layout prior to being shown seems to do the trick so that the correct sizeHint is reported to the QMenu.

<sigh>

This is really still pretty dirty and I would still be interested if anyone has a better way.