Pyqt 5.4.1 - 如何使用 QOpenGLWindow?
Pyqt 5.4.1 - how to use QOpenGLWindow?
下面的简单代码只输出了 None
两次,请问这是什么原因?我可以看到黑色 window,但无法绘制任何东西,因为无法访问 GL 函数。
from PyQt5.QtGui import QOpenGLWindow
from PyQt5.QtWidgets import QApplication
import sys
class MainWindow(QOpenGLWindow):
def paintGL(self):
print self.context().versionFunctions()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
我在这里找到了一个很好的例子:https://github.com/pbouda/stuff/blob/master/opengl/pyqt/chocolux.py
问题出在不正确的 GL 配置文件中:尽管我的视频卡有 4.4,但 PyQt 仅支持 2.0 和 2.1。老实说,这很可悲...
1.0 failed: No module named _QOpenGLFunctions_1_0
1.1 failed: No module named _QOpenGLFunctions_1_1
1.2 failed: No module named _QOpenGLFunctions_1_2
1.3 failed: No module named _QOpenGLFunctions_1_3
1.4 failed: No module named _QOpenGLFunctions_1_4
1.5 failed: No module named _QOpenGLFunctions_1_5
2.0 is ok
2.1 is ok
3.0 failed: No module named _QOpenGLFunctions_3_0
3.1 failed: No module named _QOpenGLFunctions_3_1
我用下面的代码得到了这个:
def paintGL(self):
for i in xrange(0, 5):
for j in xrange(0, 1000):
version = QtGui.QOpenGLVersionProfile()
version.setVersion(i, j)
try:
if self.context().versionFunctions(version) is not None: print '{}.{} is ok'.format(i, j)
except Exception as e:
print '{}.{} failed: {}'.format(i, j, e)
下面的简单代码只输出了 None
两次,请问这是什么原因?我可以看到黑色 window,但无法绘制任何东西,因为无法访问 GL 函数。
from PyQt5.QtGui import QOpenGLWindow
from PyQt5.QtWidgets import QApplication
import sys
class MainWindow(QOpenGLWindow):
def paintGL(self):
print self.context().versionFunctions()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
我在这里找到了一个很好的例子:https://github.com/pbouda/stuff/blob/master/opengl/pyqt/chocolux.py
问题出在不正确的 GL 配置文件中:尽管我的视频卡有 4.4,但 PyQt 仅支持 2.0 和 2.1。老实说,这很可悲...
1.0 failed: No module named _QOpenGLFunctions_1_0
1.1 failed: No module named _QOpenGLFunctions_1_1
1.2 failed: No module named _QOpenGLFunctions_1_2
1.3 failed: No module named _QOpenGLFunctions_1_3
1.4 failed: No module named _QOpenGLFunctions_1_4
1.5 failed: No module named _QOpenGLFunctions_1_5
2.0 is ok
2.1 is ok
3.0 failed: No module named _QOpenGLFunctions_3_0
3.1 failed: No module named _QOpenGLFunctions_3_1
我用下面的代码得到了这个:
def paintGL(self):
for i in xrange(0, 5):
for j in xrange(0, 1000):
version = QtGui.QOpenGLVersionProfile()
version.setVersion(i, j)
try:
if self.context().versionFunctions(version) is not None: print '{}.{} is ok'.format(i, j)
except Exception as e:
print '{}.{} failed: {}'.format(i, j, e)