1.QWidget * QScrollView::viewport () const
返回滾動視圖中的視口窗口部件,這個窗口部件包含內容窗口部件或者要畫的區域。
2.void QWidget::paintEvent ( QPaintEvent * ) [虛 保護]
只要窗口部件需要被重繪就被調用。每個要顯示輸出的窗口部件必須實現它。這個事件處理器可以在子類中被重新實現來接收繪制事件。 它可以是repaint()或update()的結果。 很多窗口部件在當它們被請求時,它們很簡單地重新繪制整個界面,但是一些窗口部件通過僅僅繪制被請求的區域QPaintEvent::region()進 行優化,例如,QListView和QCanvas就是這樣做的。
Qt也可通過把多個繪制事件合並為一個來加快繪制速度。當update()被調用幾次或者窗口系統發送幾次繪制事件,Qt把它們合並為 一個比較大區域(請參考QRegion::unite())的一個事件中。repaint()不允許這樣優化,所以只要可能我們盡量使用update ()。
當繪制事件發生,更新區域通常被擦除。這里有一些例外,通過QPaintEvent::erased()可以得知這個窗口部件是否被擦除。
注意事項:當重繪的窗口面積為0時,下一次將不再重繪窗口,paintEvent函數將不再調用,所以,在沒有數據重繪的時候,我們應該始終保持窗口一個最小值。
————————————————
版權聲明:本文為CSDN博主「DevilBox」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Devil_box/article/details/44679069