我正在编写一个带有两个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