有没有办法在QT中用paintGL继续更新GL内容?

时间:2014-01-06 14:15:00

标签: pyqt

我正在编写一个带有两个QGLWidgets的视频播放器 - 一个控制器(一个带有选择,播放等按钮的菜单)和一个查看器(视频实际播放的位置)。对于查看器,我有paintGL函数调用我实现的显示函数来更新每个帧。但除非我调整查看器窗口大小或在两个窗口之间切换,否则查看器不会自动更新,只会在第三帧停止。

在其他帖子中,我发现我几乎无法控制何时调用paintGL(调整大小是调用它的一种情况)。有办法解决这个问题吗?

谢谢!

编辑: 所以我有两个类:播放器和查看器(两个QGLWidgets) 运行程序时,将显示播放器(控制器),用户可以选择视频并点击播放按钮。播放器以创建播放所选视频的Viewer的方式处理播放按钮。

def handlePlayButton(self):
    self.viewer = Viewer(self.filepath)
    self.viewer.show()

查看器初始化并更新如下

def paintGL(self):
    self.display() //update the window with the current frame
    glViewport(0, 0, self.vid.getWidth(), self.vid.getHeight())

def resizeGL(self, w, h):
    glMatrixMode(GL_PROJECTION)
    glLoadIdentity()

def initializeGL(self):
    //initialize the shaders with other libraries

0 个答案:

没有答案