【发布时间】:2016-01-14 10:39:26
【问题描述】:
我有一些问题。希望任何人都可以帮助我。 我有一个 Qwidget1 和 Qwidget2。 Qwidget1 有一个可提升到 Qwidget2 的小部件。 Qwidget1 和 Qwidget2 都有paintEvent。我在 Qwidget1 的绘制事件中写了 "qDebug()
【问题讨论】:
-
这里没有损坏。
-
请告诉我原因。
我有一些问题。希望任何人都可以帮助我。 我有一个 Qwidget1 和 Qwidget2。 Qwidget1 有一个可提升到 Qwidget2 的小部件。 Qwidget1 和 Qwidget2 都有paintEvent。我在 Qwidget1 的绘制事件中写了 "qDebug()
【问题讨论】:
这是预期的行为。您的代码可以正常工作。来自 Qt 文档:
绘制事件是重新绘制全部或部分小部件的请求。它可以 由于以下原因之一发生:
repaint() 或 update() 被调用,
小部件被遮挡,现在已被发现,
或许多其他原因。
【讨论】:
在许多情况下,窗口或其部分变得无效并且必须重新绘制。此类情况包括但不限于:
当它发生时,Windows 会向应用程序发送WM_PAINT 消息。您可以检查收到的WM_PAINT 消息的数量是否与paintEvent 调用的数量相匹配,但我怀疑 Qt 会增加任何重大开销。
【讨论】: