我想调用QGLWidget :: renderPixmap()来保存QGLWidget的内容,但它失败了。控制台提示: “QGLContext :: chooseContext():SetPixelFormat失败:函数不正确。”
void MyOpenGLWidget::savePicture()
{
QPixmap pixmap = renderPixmap(width(), height());
}
运行环境: Windows Xp,QtSDK 4.8.0
答案 0 :(得分:0)
renderPixmap
的文档指出:
注意创建显示列表,修改视图 frustum等应该在initializeGL()中完成。如果不是这样的话 完成后,临时QGLContext将无法正确初始化,并且 渲染的像素图可能不完整/已损坏。
所以我猜你的上下文配置部分与initializeGL()
的方法不同。
可能导致您出现问题的另一种情况是,如果您使用自定义QGLContext
并且未覆盖QGLContext::choosePixelFormat(void * dummyPfd, HDC pdc)
。