无法在InitializeGL和paintGL

时间:2015-07-05 03:40:16

标签: c++ qt opengl

正如标题所示,在Qt内部,我无法使用或调用QGLWidget函数之外的任何OpenGL函数,如initializeGL()paintGL()

在调用QMainWindow类的一个插槽后,我正在尝试构建一个3D模型。一切似乎工作正常,所有顶点都被加载,但是,当我尝试绘制我的模型时,我得到一个NULL引用异常;最常见的情况是,当提供的顶点太少时会发生这种情况。

我在initializeGL()中使用相同的构建函数。

1 个答案:

答案 0 :(得分:4)

这实际上很简单:在这些函数之外,QGLWidget的上下文不是最新的。您可以通过调用QGLWidet :: makeCurrent()使上下文成为当前。解决这个问题的一个更好的方法是将任何GL函数调用到paintGL中,因为这可以确保上下文是最新的,并且您不会因为更改上下文而冒险处理任何其他openGL内容。