Why don't you use QGLWidget::grabFrameBuffer()?