在我的QGLWidet中,我使用方法renderText()绘制一些文本。然后,我想将小部件的内容保存为图像。但是,事实证明,renderText()绘制的文本没有保存。
void MyGLWidget::paintGL()
{
qglClearColor(Qt::white);
glViewport(0,0, width(), height());
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0.0,0.0);
glBegin(GL_LINES);
glVertex2f(0,0);
glVertex2f(width(), height());
glEnd();
renderText(50, 50, "Hello");
glColor3f(0.0,1.0,0.0);
renderText(50, 150, "World");
}
以下是保存图片的代码:
void MyGLWidget::saveImage()
{
QGLPixelBuffer pbuffer(width(), height());
pbuffer.makeCurrent();
paintGL();
QImage image = pbuffer.toImage();
image.save("test_image.tif","tif");
}
有什么想法吗?
答案 0 :(得分:1)
在调试Qt 4.8.0的源代码后,我发现了一些不起作用的原因。
不幸的是,看起来renderText与QGLPixelBuffers
完全不兼容