Using QPainter it only paints to the difference area of the picture and messes everything up.
This can be contolled with the widget flags.
Try playing with Qt::WStaticContents and Qt::WNoAutoErase and see if it helps.