QGLWidget :: renderPixmap()失败--- QGLContext :: chooseContext():SetPixelFormat失败

时间:2012-03-16 07:00:01

标签: qt opengl

我想调用QGLWidget :: renderPixmap()来保存QGLWidget的内容,但它失败了。控制台提示: “QGLContext :: chooseContext():SetPixelFormat失败:函数不正确。”

void MyOpenGLWidget::savePicture()
{
    QPixmap pixmap = renderPixmap(width(), height());
}

运行环境: Windows Xp,QtSDK 4.8.0

1 个答案:

答案 0 :(得分:0)

renderPixmap的文档指出:

  

注意创建显示列表,修改视图   frustum等应该在initializeGL()中完成。如果不是这样的话   完成后,临时QGLContext将无法正确初始化,并且   渲染的像素图可能不完整/已损坏。

所以我猜你的上下文配置部分与initializeGL()的方法不同。

可能导致您出现问题的另一种情况是,如果您使用自定义QGLContext并且未覆盖QGLContext::choosePixelFormat(void * dummyPfd, HDC pdc)