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

标签 c++ opengl 3d pyqt rendering

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

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

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

最佳答案

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

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

关于c++ - 将 pyqt opengl 上下文传递给 C++ 进行渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22092853/

相关文章:

c++ - OpenGL - 第一人称相机矩阵的问题

opengl - DirectX/OpenGL 中的三角形绘制顺序

c++ - 创建一个简单的 'hello world' 并将其与 2 个预编译对象链接在一起

c++ - 通过对立方体应用变换来创建 3D 方形平截头体?

c++ - C/C++ 中的数值转换

c++ - 上下文共享在带有 glfw 和 glew 的 opengl 中不起作用,第二个窗口就像上下文根本不共享

html - 将 3D-Cube 嵌入到另一个站点不起作用

algorithm - 更逼真的透视算法

c++ - Protocol Buffer 文本格式解析器在反斜杠字符上给出错误

java - 通过一组点近似 R2 线