在图像上绘图:PyQt 和 PyOpenGL

Draw on an image: PyQt and PyOpenGL

我正在尝试使用 PyQt5 和 PyOpenGL 在现有图像上绘制线条和形状。到目前为止,我已经完成了以下工作:

  1. 创建 QGraphicsView 的对象
  2. 向其中添加一个 QGraphicsScene() 对象
  3. Pixmap 添加到我的 scene

我还创建了一个名为 GLWidget 的 class,它继承自 QGLWidget。 问题是我无法在 scene 中显示 GLWidget。我的意思是,当我执行 scene.addWidget(glWidget) 时,函数 (initializeGLpaintGL、...) 被调用,但屏幕上没有任何显示。 我不得不说,当我只显示 GLWidget 时:

glWidget = GLWidget(self)
self.setCentralWidget(glWidget)

它工作正常!

提前致谢。

我在 github 中的 PyQt5 示例中找到了解决方案: PyQt5 OpenGL examples

棘手的部分是我必须执行的 initializeGL 函数:

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

希望对您有所帮助!