Ago, by unplugging the second monitor I can reproduce your result.
So with the "early" realize() call and two monitors the globe shows on the desktop.
With the early realize() call and one monitor the globe shows in the expected window but aspect ratio is wrong.
And without the early realize() we get a black window.
That's crazy... ;)
The early realize() call should not be necessary as the osgEarthQt::ViewerWidget will create and set a GraphicsContext on the osg viewer that it is given.
Note that without the early realize call, the rex globe does not show but it is there. Enabling logging shows that rex is loading tiles and reacting to mouse events.
Pressing 'S' dumps some stats to the console.
What's also strange is that the Stats HUD does not show when pressing 's'. I can understand that rex fails to render but the HUD !?!
And finally, the mp engine works fine. Globe is there in the window, Stats HUD works, ...