QT update和repaint

时间:2019-12-19 16:45:45
【文件属性】:

文件名称:QT update和repaint

文件大小:976B

文件格式:TXT

更新时间:2019-12-19 16:45:45

update

qt 中更新界面和重绘的问题


网友评论

  • 没有源码,只有文字几行! 通过立即调用paintEvent()来直接重新绘制窗口部件,如果erase为真,Qt在paintEvent()调用之前擦除区域(x,y,w,h)。 如果w是负数,它被width()-x替换,并且如果h是负数,它被height()-y替换。 如果你需要立即重新绘制,建议使用repaint(), 比如在动画期间。在绝大多数情况下,update()更好,因为它允许Qt来优化速度并且防止闪烁。 警告:如果你在一个函数中调用repaint(),而它自己又被paintEvent()调用,你也许会看到无线循环。 update()函数从来不会产生循环。 void QWidget::update () [槽] 更新窗口部件,当Qt回到主事件中时,它规划了所要处理的绘制事件。这样允许Qt进行优化从而得到比调用repaint()更快的速度和 更少的闪烁。 几次调用update()的结果通常仅仅是一次paintEvent()调用。 Qt通常在paintEvent()调用之前擦除这个窗口部件的 区域,仅仅只有在WRepaintNoErase窗口部件标记被设置的时候才不会。 在这区别中关键点是:repaint()是立即调用paintEvent(),而update()是几次执行才调用一次paintEvent()。 这样update()会造成这样的结果:paintEvent()中的任