首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >update()或fails ()未能触发paintEvent()

update()或fails ()未能触发paintEvent()
EN

Stack Overflow用户
提问于 2010-02-16 16:38:17
回答 1查看 25.2K关注 0票数 19

我有一个QScrollArea,它是我最棒的滚动小部件的父亲。我喜欢在各种场合更新内容。

为此,我对paintEvent(QPaintEvent *)进行了重写。然后,每次我想要这样做时,我都会在小部件上调用update()

问题: paintEvent()从未被调用过!

到目前为止,我在故障排除方面所做的尝试:

  • 使用repaint()而不是update()。应该立即调用它。不幸的是没有。
  • isVisible()updatesEnabled测试
  • 测试我的覆盖是否正确。调整窗口大小的调用我的函数,只调用手动update(),repaint()调用失败。
  • 实现一个QTimer以每500 or触发update()或重新绘制()。触发器提供文本输出,函数不被调用。

有人知道下一步要查什么吗?是什么使could ()不调用paintEvent()呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-23 12:41:21

解决方案是从您的this->viewport()->repaint()派生类调用this->viewport()->update()repaint(),而不是只调用repaint()update()

更多信息在Qt文档中提供

QWidget * QAbstractScrollArea::viewport () const 返回viewport小部件。使用QScrollArea::widget()函数检索viewport小部件的内容。

由于我们在QAbstractScrollArea派生类中的内容将显示在viewport小部件中,因此调用viewport的更新或重新绘制来再次绘制数据(调用paintEvent )是有意义的。

票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2274512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档