答案 0 :(得分:3)
setGeometry()
和raise()
应自动在相应的小部件上生成paintEvent
。
我认为大多数Qt自己的小部件都会在适当的时候调用update()
。在自定义小部件上,只要可见的内容发生变化,您就会调用update()
。例如,如果您有自己的Label类(不继承自QLabel
,因此不使用QLabel
的工具来更改文本和/或图像),则调用update()
每当您更改内容时,新内容都将显示在屏幕上。
注意:如果重新绘制对时间不重要,则不应在小部件上使用repaint()
。 repaint()
会导致在调用小部件时向其发出paintEvent
,而update()
只会在下次进程到达主要时将paintEvent
排队。环。这允许绘制引擎为同一个窗口小部件收集多个paintEvent
并仅发出一个组合事件。因此,使用repaint()
可以真正影响性能。