Qt qgraphicsview屏幕截图

Qt qgraphicsview屏幕截图,qt,opengl-es,Qt,Opengl Es,我有一个用qt5编写的嵌入式主板浏览器应用程序。我需要opengl渲染的应用程序。所以代码如下 myGraphicsView->setViewport(new QGLWidget(QGLFormat(QGL::NoDepthBuffer |QGL::NoStencilBuffer |QGL::NoSampleBuffers))); 我想拍摄呈现的网页的屏幕截图。我如何获得它。使用QPixmap::grabFrameBuffer和grabWindow进行了操作。但只获得了一个白色屏幕。我在

我有一个用qt5编写的嵌入式主板浏览器应用程序。我需要opengl渲染的应用程序。所以代码如下

myGraphicsView->setViewport(new QGLWidget(QGLFormat(QGL::NoDepthBuffer |QGL::NoStencilBuffer |QGL::NoSampleBuffers)));

我想拍摄呈现的网页的屏幕截图。我如何获得它。使用QPixmap::grabFrameBuffer和grabWindow进行了操作。但只获得了一个白色屏幕。

我在internet中找到并尝试了,它有效:

//Get the size of your graphicsview
QRect rect = MyGrView->viewport()->rect();

//Create a pixmap the same size as your graphicsview
//You can make this larger or smaller if you want.
QPixmap pixmap(rect.size());
QPainter painter(&pixmap);//QPainter does not support coordinates larger than +/- 32768

//Render the graphicsview onto the pixmap and save it out.
MyGrView->render(&painter, pixmap.rect(), rect);
pixmap.save("C:/1.png","PNG");