QGLWidget的fromat需要使用一个QGLFormat来设置,当不需要将QGLWidget作为一个内嵌到界面中的组件时,可以在类中定义一个QGLFormat实例fmt,在构造函数中设置一些功能,如setDoubleBuffer()、setStereo(),在initializeGL()中使用setFormat(fmt)来实现设置
但在Qt4.8版本中,如果需要将QGLWidget内嵌到一个界面中时,要在类初始化时设置
例如,我们定义一个OpenGLWidget类,该类继承了QGLWidget,那么QGLFormat的设置为
OpenGLWidget(QWidget* parent, const QGLWidget* shareWidget, Qt::WindowFlags f):QGLWidget(QGLFormat(QGL::DoubleBuffer | QGL:: StereoBuffers),parent, shareWidget, f){
。。。
}
也可以参考下边这篇文章
Qt使用OpenGL关闭出错