You can either:
1. subclass QLabel override paint() event and use qpainter beginNativePainting() to paint using OpenGL, although graphics sub system should support OpenGL
2. use so called off-screen render, then You don't need QGLWidget at all, only valid QGLcontext. In that case You can use anything to generate image, including shaderes etc. Then render that to qimage/qpixmap and place that pix onto QLabel.