我将从Winpython3.4.3.7Qt4迁移到Winpython3.x.x.xQt5(我尝试了许多版本),并遇到以下问题:
下面的示例代码(它没有实际用途,但演示了错误):
下面的示例代码(它没有实际用途,但演示了错误):
from PyQt5 import QtWidgets
import OpenGL.GL as gl
from PyQt5.QtOpenGL import QGLWidget
qapp = QtWidgets.QApplication([])
window = QGLWidget()
window.makeCurrent()
index = gl.glGenLists(1)
print(index)
这个程序在我所有安装了Winpython3.4.3.7Qt4的机器上运行,并打印出'1'。但是当我使用Winpython3.x.x.xQt5时,它就不能在我的虚拟机上运行了。我得到的错误信息是:
Traceback (most recent call last):
File ".\opengl.py", line 12, in <module>
index = gl.glGenLists(1)
File "C:\Winpython-64bit-3.6.7.0\python-3.6.7\lib\site-packages\OpenGL\platform\baseplatform.py", line 405, in __call__
return self( *args, **named )
File "C:\Winpython-64bit-3.6.7.0\python-3.6.7\lib\site-packages\OpenGL\error.py", line 232, in glCheckError
baseOperation = baseOperation,
OpenGL.error.GLError: GLError(
err = 1282,
description = b'invalid operation',
baseOperation = glGenLists,
cArguments = (1,),
result = 0
)
我有一种感觉,window.makeCurrent() 没有成功执行,但我不知道为什么。从Qt4到Qt5在这方面有什么变化?
glGenLists
已经在现代OpenGL版本中被移除了十年。 - derhass