正如标题所示,在Qt内部,我无法使用或调用QGLWidget函数之外的任何OpenGL函数,如initializeGL()
和paintGL()
。
在调用QMainWindow
类的一个插槽后,我正在尝试构建一个3D模型。一切似乎工作正常,所有顶点都被加载,但是,当我尝试绘制我的模型时,我得到一个NULL引用异常;最常见的情况是,当提供的顶点太少时会发生这种情况。
我在initializeGL()
中使用相同的构建函数。
答案 0 :(得分:4)
这实际上很简单:在这些函数之外,QGLWidget的上下文不是最新的。您可以通过调用QGLWidet :: makeCurrent()使上下文成为当前。解决这个问题的一个更好的方法是将任何GL函数调用到paintGL中,因为这可以确保上下文是最新的,并且您不会因为更改上下文而冒险处理任何其他openGL内容。