Important: Please read the Qt Code of Conduct -

Qt 5.6 - QWidget::repaint() does not trigger a repaint before returning

  • In certain areas of my application I need to call QWidget::repaint() in order to re-render a frame in OpenGL, so that I can access the depth buffer information at that particular instance in time. Initially I was using QWidget::update(), but later determined that repaint() was required as it ensured that the refresh happened immediately instead of being scheduled for the near future.

    This method worked fine in Qt 5.5.1 that I used to be running - however, after updating to Qt 5.6 repaint() just seems to act like update() instead. I verified this by putting a breakpoint within my paintGL() function and on the invocation of repaint() - the paintGL() breakpoint was not hit before repaint() returned, when previously this was the case.

    Am I missing something important, or is this a bug?

  • Lifetime Qt Champion


    Can you make a small compilable example that reproduces that behavior change ?

    You also might want to take a look at the bug report system to see if there's something mentioning that.

Log in to reply