我已经实现了自己的QOpenGLWidget类。当新的视频帧到达或调用resizeGL时,我会使用update()。
一开始,视频帧通过paintGL显示得很好。但一段时间后(<3分钟),paintGL仅由resizeGL触发,而不是由新视频帧的update()触发。
我发现其他人也遇到了同样的问题。但目前尚未公布解决方案。QOpenGLWidget仅在调整大小时更新
QOpenGLWidget更新如何不导致paintGL事件?
QOpenGLWidget在更新()时停止重新绘制
更新:当我只呈现一个QOpenGLWidget时,一切都很好。但是当两个或更多时,大一点的很快就会结冰。
终于找到了答案。
我必须在主线程中调用qt的update()方法。您可以通过QT的sig插槽来实现。
我只是想知道,为什么update()必须在主线程中调用,这是QT错误吗?