我刚刚安装了OpenGL以与Python 3.7和PyQt5配合使用,安装没有任何错误。当我尝试运行OpenGL的PyQt5给定的示例代码时,仅运行1个示例代码,其他所有代码均出错。以下是与每个文件相关的错误:
openglwindow.py
self.m_gl.initializeOpenGLFunctions()
[AttributeError:'NoneType'对象没有属性'initializeOpenGLFunctions']
grabber.py
文件“ src / errorchecker.pyx”,OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError中的第53行
OpenGL.error.GLError:GLError(
err = 1282,
说明= b'无效操作',
baseOperation = glLightfv,
...
hellogl.py
文件“ src / errorchecker.pyx”,OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError中的第53行
OpenGL.error.GLError:GLError(
err = 1282,
说明= b'无效操作',
baseOperation = glGetString,
cArguments =(GL_VENDOR,)
)
overpainting.py
文件“ src / errorchecker.pyx”,OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError中的第53行
OpenGL.error.GLError:GLError(
err = 1282,
说明= b'无效操作',
baseOperation = glGenLists,
cArguments =(1,),
结果= 0
)
samplebuffers.py
文件“ src / errorchecker.pyx”,OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError中的第53行
OpenGL.error.GLError:GLError(
err = 1282,
说明= b'无效操作',
baseOperation = glMatrixMode,
cArguments =(GL_PROJECTION,)
)
我正在使用Windows 10,并且OpenGL版本是3.1。如何解决此问题?
经过大量搜索,我发现Windows默认情况下使用ANGLE,这是一个在Direct 3D之上实现OpenGL ES的库。
因此,我迫使应用程序使用OpenGL而不是ANGLE
QCoreApplication.setAttribute(Qt.AA_UseDesktopOpenGL)
此外,我使用了Unofficial Windows PyOpenGL Binaries。
我从以下两个来源获得了解决方案: