【发布时间】:2010-02-16 16:38:17
【问题描述】:
我有一个 QScrollArea 继承了我很棒的滚动小部件。我喜欢在各种场合更新内容。
为此,我重写了paintEvent(QPaintEvent *)。然后每次我想要完成时,我都会在小部件上调用update()。
问题: paintEvent() 永远不会被这个调用!
到目前为止我在故障排除方面的尝试:
- 使用
repaint()而不是update()。应该立即调用它。不幸的是没有。 - 测试
isVisible()和updatesEnabled - 测试我的覆盖是否正确。 调整窗口大小调用我的函数。只有我的手动 update()、repaint() 调用失败。
- 实现一个 QTimer 以每 500 毫秒触发一次 update() 或 repaint()。触发器给出文本输出,函数没有被调用。
有人知道接下来要检查什么吗?什么可以让 repaint() 不 调用paintEvent()?
【问题讨论】:
-
不是在 QScrollArea 上绘图,而是它分配的 QLabel 为我解决了这个问题。我得到了 QLabel 的 update()s。
-
你能粘贴你的标题/类定义吗?你有所有的 Q_OBJECT 宏吗?还可以快速了解您如何覆盖您的paintEvent()...