Как может обновление QOpenGLWidget не приводить к событиям paintGL?

Я записываю звонки на update() и paintGL(), но почему-то происходит только обновление. paintGL вызывается пару раз, и больше никогда! Как это возможно? Окно видно, и isVisible() возвращает True каждый раз, когда вызывается update().

В частности, я преобразовал QGLWidget в QOpenGLWidget. Я заменил свои вызовы updateGL() вызовами update() и заменил передачу формата в конструктор вызовом setFormat(). Я добавил различные вызовы в makeCurrent(), где это необходимо. Что мне не хватает?

Похоже, что QOpenGLWidget может быть неисправен, если это один из многих виджетов в окне.


person Neil G    schedule 10.06.2015    source источник
comment
Полагаю, окно видно пользователю?   -  person Frank Osterfeld    schedule 10.06.2015
comment
@FrankOsterfeld: Хм. isVisible возвращает истину каждый раз, когда вызывается обновление.   -  person Neil G    schedule 10.06.2015
comment
Нил: Я имею в виду, если окно действительно видно, то есть внутри экрана и на переднем плане.   -  person Frank Osterfeld    schedule 10.06.2015
comment
@FrankOsterfeld: Да, это видно, но там полно мусора, потому что paintGL, похоже, не работает.   -  person Neil G    schedule 10.06.2015


Ответы (1)


Мой QOpenGLWidget находился в QScrollArea, который не пересылал QPaint события.

person Neil G    schedule 08.05.2016