何时在小部件上调用update()?

时间:2011-09-19 06:46:07

标签: c++ qt4

何时需要调用update()方法?

我必须打电话吗?

我对我的小工具所做的只有setGeometry()raise()

1 个答案:

答案 0 :(得分:3)

setGeometry()raise()应自动在相应的小部件上生成paintEvent

我认为大多数Qt自己的小部件都会在适当的时候调用update()。在自定义小部件上,只要可见的内容发生变化,您就会调用update()。例如,如果您有自己的Label类(不继承自QLabel,因此不使用QLabel的工具来更改文本和/或图像),则调用update()每当您更改内容时,新内容都将显示在屏幕上。

注意:如果重新绘制对时间不重要,则不应在小部件上使用repaint()repaint()会导致在调用小部件时向其发出paintEvent,而update()只会在下次进程到达主要时将paintEvent排队。环。这允许绘制引擎为同一个窗口小部件收集多个paintEvent并仅发出一个组合事件。因此,使用repaint()可以真正影响性能。