Qt:使用QOpenGLWidget截图

时间:2018-04-10 11:27:43

标签: c++ qt5

Hellow, 我有一个基于Qt的应用程序使用QOpenGLWidget。 在OpenGL小部件(我的代码中名为oglwidget)中,我使用opengl函数绘制网格和线条。然后我使用QPainter在同样的widgte中绘制尺度和文本。

现在我使用:

const QRect rect(0,0,oglwidget.width(),oglwidget.height());
QPiaxmap pixmap = oglwidget.grab(rect);

将pixmap保存在一个文件中:

pixmap.save(...);

仅保存使用opengl函数绘制的对象。

我想念什么?有没有解决方案来保存整个场景?

你能帮忙吗? 谢谢和问候。

1 个答案:

答案 0 :(得分:0)

如果您将使用QOpenGLWidget方法抓住它实际上会通过了OpenGL渲染的帧缓冲区得到的像素,如果你想捕捉的screenshoot你应该看看这个tutorial。< / p>

更具体地说,您可能需要QScreen中的grab方法,而不是抓住openGL上下文(QOpenGlWidget方法)。