Ich muss einen Screenshot eines Widgets mit OpenGL-Inhalt erfassen (mit SoQt 1.5.0-Klassen unter Qt5.5) und es in einem QImage speichern. Was ich bisher versucht ist:Erfassen eines Widgets mit OpenGL-Inhalt unter Qt5.5
- grabFrameBuffer von der QGLWidget-Klasse (die obsolet, da QT5 zu sein scheint): es ist in einem schwarzen Bereich führt
- mit grabFramebuffer aus der QOpenGLWidget Klasse: die Erfassung nicht einmal arbeiten, und es gibt keinen Bereich, um es gewidmet
- mit renderPixmap aus der QGLWidget Klasse: es ergibt sich eine weiße Fläche
Das Problem scheint in diesem, wenn die Bedingung angeordnet zu werden (die QGLWidget verwendet: : grabFrameBuffer() unter Qt4.8 und die wir versuchen zu Qt5.5 migrieren):
if(dynamic_cast<QGLWidget*>(rendererCourant->getNormalWidget()))
{
((QGLWidget*)rendererCourant->getNormalWidget())->updateGL();
_image = ((QGLWidget*)(rendererCourant->getNormalWidget()))->grabFrameBuffer();
}
Hat jemand einen Hinweis auf die Sache haben?