What happens is that Layouts don´t work good with OpenGL underneath. It appears black, doesn´t repaint openGL.
If you remove the layout, it works, but then you have to position widgets around by hand.
And if you have stylesheet assigned and round corners, the corners will be black too. A work around is to add this flag:
@
widget->setAttribute( Qt::WA_TranslucentBackground );
@