QopenGLWidget paintGL仅由resizeGL触发

时间:2019-01-16 02:05:16

标签: c++ qt opengl opengl-es qt5

我已经实现了自己的QOpenGLWidget类。 当到达新的视频帧或调用resizeGL时,我使用update()。

开始时,paintGL可以正常显示视频帧。但是经过一段时间(<3分钟),paintGL仅由resizeGL触发,而不是由新视频帧中的update()触发。

我发现其他人也遇到同样的问题。但尚未发布解决方案。 QOpenGLWidget only updates when resized

How can QOpenGLWidget update not result in paintGL events?

QOpenGLWidget stops repainting on update()

更新: 当我仅渲染一个QOpenGLWidget时,一切都很好。但是当两个或更多时 较大的将很快冻结。

1 个答案:

答案 0 :(得分:0)

最后,我找到了答案。

我必须在主线程中调用qt的update()方法。您可以通过QT的sig-slot来实现。

我只是想知道,为什么必须在主线程中调用update(),这是QT错误吗?