C++ QGLWidget始终具有无效的上下文

C++ QGLWidget始终具有无效的上下文,c++,opengl-es,qt4,qglwidget,C++,Opengl Es,Qt4,Qglwidget,我有一个QGLWidget的派生类,但是无论我尝试设置什么QGLFormat,当我调用isValid()时,上下文都返回为无效 我创建的小部件如下所示: QGLFormat glFormat; glFormat.setSwapInterval(1); glFormat.setVersion(2, 0); glFormat.setStencil(true); glFormat.setStencilSize(8); glFormat.setProfile(QGLFormat::Compatibi

我有一个QGLWidget的派生类,但是无论我尝试设置什么QGLFormat,当我调用isValid()时,上下文都返回为无效

我创建的小部件如下所示:

QGLFormat glFormat; 
glFormat.setSwapInterval(1);
glFormat.setVersion(2, 0); 
glFormat.setStencil(true);
glFormat.setStencilSize(8);
glFormat.setProfile(QGLFormat::CompatibilityProfile); 

GLWidget * glView = new GLWidget(glFormat, w); //w is the QGraphicsView 
w->setViewport(glView);
这段代码是交叉编译到LinuxARM的,我对硬件本身不太了解。我知道OpenGLES2.0本身是受支持的(我已经测试过了),但我不确定上面的代码是否是我使用OpenGLES2.0生成上下文的方式。编辑:奇怪的是,我可以调用
QGLFormat::openGLVersionFlags()
,返回2048(OpenGL ES 2.0),但类引用说:

在运行时确定受支持的OpenGL版本 当前平台。请注意,如果支持OpenGL 1.5版, 它的前身(即1.4版和更低版本)也受支持。到 识别特定功能的支持,如多重纹理, 首次引入该功能的版本的测试(即。, 版本1.3(在多纹理的情况下)以适应最大的 可能的运行时平台组此函数需要有效的 当前OpenGL上下文是否正常工作;否则它就会回来 OpenGL_Version_None.此函数是在Qt 4.2中引入的

我想做的事和你的很相似。我基本上想要一个视口,在那里我可以使用OpenGL渲染视频帧


任何帮助都将不胜感激

在构造glwidget对象之后调用isValid()?是的。这有什么问题吗?不,没关系,只是想确定这就是你所做的一切
QGLFormat glFormat; 
glFormat.setSwapInterval(1);
glFormat.setVersion(2, 0); 
glFormat.setStencil(true);
glFormat.setStencilSize(8);
glFormat.setProfile(QGLFormat::CompatibilityProfile); 

GLWidget * glView = new GLWidget(glFormat, w); //w is the QGraphicsView 
w->setViewport(glView);