Python 3下的OpenGL 3+

0 投票
1 回答
1929 浏览
提问于 2025-04-17 20:55

我想用Python写一个可视化程序,用来展示一些复杂的科学数据。几年前我在Objective-C/Cocoa/OpenGL中做过类似的事情。这个可视化程序需要用到一些炫酷的着色器程序,所以至少需要OpenGL 3.0。此外,我还需要绘制一个窗口,并处理一些鼠标和键盘的操作。如果能有一些图形界面的小部件就更好了,但这不是必须的。最好是支持Python 3。

我查了一些库:

  • PyOpenGL,但它不支持窗口、鼠标和键盘的操作。
  • PyGlet,只支持Python 2.7。
  • PyQt,只支持OpenGL 2.0。
  • PySide,基本上已经不再更新,停留在Qt 4.7。
  • wxPython,只支持Python 2.7。
  • PyGame,基本上也不再更新。

你知道有没有什么库可以在Python 3中实现现代的OpenGL和窗口处理吗?

1 个回答

1

我推荐使用PyOpenGL加上PyQt。你也可以考虑用Python配合Pyglet或者wxPython。

PyOpenGL(是Mike Fletcher版本的,对吧?)是我知道的最好的Python OpenGL接口。它支持OpenGL 3和4,而且用起来非常顺手,符合Python的风格。

PyQt本身只支持OpenGL 2,但PyOpenGL可以在PyQt的环境中运行。因为PyQt有Python 3的版本,所以这组合应该能满足你的需求。

在图形界面方面,我更喜欢wxPython,不过正如你提到的,它还没有更新到Python 3。你可以看看wxPython Phoenix项目,但那还是在不断开发中。

Pyglet也挺不错,但它的图形界面功能比wxPython或PyQt少。可以把它想象成GLUT的替代品。Python 3的版本现在还在测试阶段,但因为不是完全重写,我预计很快就会稳定下来。

希望这些信息对你有帮助。

撰写回答