PyQt5的OpenGL模块和版本控制问题(要求不正确的QOpenGLFunctions)

2024-09-30 05:27:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直试图让the PyQt5 helloGL example code编译。当我尝试构建解决方案时,我得到:

Traceback (most recent call last):
  File "C:\Users\\-PATH-\trunk\view\test.py", line 142, in initializeGL
    self.gl = self.context().versionFunctions()
ImportError: No module named 'PyQt5._QOpenGLFunctions_4_3_Compatibility'
[Finished in 0.3s]

在我的PyQt5文件夹中,我有:

^{pr2}$

作为不同版本的qopengl函数集。我试图搜索call versionFunctions()的工作原理,看看是否可以强制它使用4_1_核心文件,但是没有用。我已经重新安装了两次PyQt5,看看它是否是奇怪的注册表恶作剧-这是在我确保我的图形驱动程序更新,以便正确版本的OpenGL甚至在我的系统上(如果这是某种原因引起的问题)

PyOpenGL已经安装和更新了,我也重新安装了它。在

我的最终目标是在Qt窗口中嵌入一个OpenGL渲染器,但是我没有在python中找到很多这样做的例子。我使用Vispy有一段时间了,但是也遇到了很多问题,因为他们以前的Qt示例也不再有效。在


Tags: theinself版本mostexamplecode解决方案
1条回答
网友
1楼 · 发布于 2024-09-30 05:27:58

这就是使用这两条线的问题:

    self.gl = self.context().versionFunctions()
    self.gl.initializeOpenGLFunctions()

相反,您应该使用适当的主/次版本创建一个自定义的QSurfaceFormat,并使用QContext的setFormat使其与合适的opengl版本一起工作。在

不管怎样,我推荐你一个简单得多的替代品。对于我所有的pyqt opengl项目,我只是直接在我的小部件上使用PyOpenGL,我免费获得最新的opengl版本。在下面找到适合直接使用PyOpengl的hellogl示例,我还添加了一些例程来打印您的gpu信息,这样您将看到所使用的opengl版本将与您的系统版本相匹配(请使用gpu caps viewer或类似的代码进行检查):

^{pr2}$

相关问题 更多 >

    热门问题