當發生一下情況時會產生繪製事件並調用paintEvent()函數:
1.在窗口部件第一次顯示時,系統會自動產生一個繪圖事件,從而強制繪製這個窗口部件。
2.當重新調整窗口部件的大小時,系統也會產生一個繪製事件。
3.當窗口部件被其他窗口部件遮擋,然後又再次顯示出來的時候,就會對那些隱藏的區域產生一個繪製事件。
同時可以調用QWidget::update()或者QWidget::repaint()來強制產生一個繪製事件。二者的區別是:
repaint()函數會強制產生一個即時的重繪事件,而update()函數只是在Qt下一次處理事件時才調用一次繪製事件。
如果多次調用update(),Qt會把連續多次的繪製事件壓縮成一個單一的繪製事件,這樣可避免閃爍現象。