The update of QWidget fails sporadically, apparently if a paint event follows a resize() call. The painted widget remains at first black, the missing contents appear e.g. when the mouse is moved to a another application's window and that window gets the focus. Possibly the backing store is not flushed properly. The described error does not occur, if the resize call does not really change the size (i.e. the new size equals the old).
To reproduce the bug, extract the attached "qtbug.zip" and compile the contained application "app". The application shows a main window with a vertical scroll bar. Move the slider with different speeds up and down. While the slider is pressed, the application shows a small window with the slider position next to the slider. The size of this window is adapted to the currently needed space. The bug: Sporadically this window remains black.
In the application's tool bar you find three buttons:
- Random: If pressed, the application shows a random number instead of the slider position. Thus the number of resize operations and the likeliness to reproduce the error is raised.
- Fixed: If pressed, the small window has a fixed size. In that case the error seems never to happen.
- Hold: If pressed, the small window is not hidden, when the slider is released. Move the slider, until the small window remains black, then release the slider. Move the mouse across the desktop e.g. to a command tool. The missing number in the small window appears now.