Может можно переопределить базовый метод?
virtual void paintEvent(QPaintEvent *event) override
Метод базового класса, который ни о каком OpenGL ничего не знает.
Я когда-то тоже прореживал рисование кадров, но делал это по-другому.
Методы paint вызываются по событию QPaintEvent, которое генерируется по update(), repaint().
Чтобы рисовать не чаще чем 1 кадр/N миллисекунд использовал таймер.
C++ (Qt)
void updateGL ()
{
if ( !redraw_timer.isActive() )
redraw_timer.start();
}
void updateByTimer ()
{
update();
}
Сейчас уже не заморачиваюсь. Встроенного прореживания в update() достаточно.