well, paintEvent() is the event called to draw the dialog after all..whenever u call update(), evth is erased and drawing starts from scratch..so if u r reimplementing it, u should do all the drawing there only..it makes sense..u can try it with smth other than QDialog, i believe same thing will happen