QT中QWidget类参考!(45)
2023-06-03 来源:旧番剧
通过立即调用paintEvent()来直接重新绘制窗口部件,除非更新是失效的或者窗口部件被隐藏。
如果erase为真,Qt在paintEvent()调用之前擦除区域(x,y,w,h)。
如果w是负数,它被width()-x替换,并且如果h是负数,它被height()-y替换。
如果你需要立即重新绘制,我们建议使用repaint(),比如在动画期间。在绝大多数情况下,update()更好,因为它允许Qt来优化速度并且防止闪烁。
警告:如果你在一个函数中调用repaint(),而它自己又被paintEvent()调用,你也许会看到无线循环。update()函数从来不会产生循环。
也可以参考update()、paintEvent()、updatesEnabled和erase()。
实例:qwerty/qwerty.cpp。
void QWidget::repaint () [槽]
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
这个版本擦除并且重新绘制整个窗口部件。
void QWidget::repaint ( bool erase ) [槽]
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
这个版本重新绘制整个窗口部件。
void QWidget::repaint ( const QRect & r, bool erase = TRUE ) [槽]
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
通过立即调用paintEvent()来直接重新绘制窗口部件,除非更新是失效的或者窗口部件被隐藏。
如果erase为真,擦除窗口部件区域r。
void QWidget::repaint ( const QRegion & reg, bool erase = TRUE ) [槽]
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
通过立即调用paintEvent()来直接重新绘制窗口部件,除非更新是失效的或者窗口部件被隐藏。
如果erase为真,擦除窗口部件区域reg。
如果你需要立即重新绘制,我们建议使用repaint(),比如在动画期间。一连串的多次调用update()将产生一个单一的绘制事件。