将 pyqt opengl 上下文传递给 C++ 进行渲染



我正在开发一个物理模拟工具。现在它只是一个控制台应用程序,没有 GUI 等,但我想在某个时候添加它。该应用程序有一个非常简单的渲染器,因此我可以看到模拟的结果。

我过去使用过 PyQt,我喜欢它进行 GUI 开发,所以我想知道是否可以在 PyQt 中创建 GUI,并在我的 C++ 渲染器中使用 QGLWidgets 中的 OpenGL 上下文。现在我使用 SDL 进行渲染和事件处理,所以想法是改用 PyQt 中生成的 OpenGL 上下文。

有谁知道这是否可能?我一直在寻找可能的解决方案,但我没有找到任何明确的答案或示例。如果不可能,您是否知道在python中开发GUI并使用C++渲染器的任何其他可能性?

您可以使用 SWIG (swig.org) 将C++渲染器库包装到 python 模块中,然后可以导入到 pyqt 应用程序中。这假设你的C++库具有适当的函数,你必须从你从QGLWidget派生的类中调用这些函数(初始化GL,resizeGL,paintGL),但否则它应该非常简单。

Boost.Python没有理由不以与SWIG相同的方式工作。细节并不重要;最终,您的 Python 脚本会调用C++函数和方法,因此必须有代码将 Python 数据转换为C++数据并返回,如果此操作正确,那么您可以专注于您的 GUI。

最新更新