Я реализовал свой собственный класс QOpenGLWidget. Я использую update (), когда приходит новый видеокадр или вызывается resizeGL.
В начале видеокадр хорошо показывает paintGL. Но через некоторое время (<3 минуты) paintGL запускается только resizeGL, а не update () для новых видеокадров. </p>
Я считаю, что другие сталкиваются с той же проблемой. Но никаких решений не было опубликовано. QOpenGLWidget обновляется только при изменении размера
Как обновление QOpenGLWidget не может привести к событиям paintGL?
QOpenGLWidget прекращает перерисовку при обновлении ()
Обновление: Когда я рендеринг только один QOpenGLWidget, все в порядке. Но когда два или более, большая из них скоро замерзнет.
Наконец-то я нахожу ответ.
Мне нужно вызвать метод qt update () в главном потоке. Вы можете достичь этого с помощью sig-slot QT.
Мне просто интересно, почему update () нужно вызывать в основном потоке, это ошибка QT?