【问题标题】:Before QGraphicsItem::paint will be called在调用 QGraphicsItem::paint 之前
【发布时间】:2013-05-11 20:59:27
【问题描述】:

我正在做一个项目,我使用QGraphicsSceneQGraphicsViweQGraphicsItem。我想在调用QGraphicsItem::paint 之前做一些计算。

那么有没有办法在QGraphicsItem::paint 被调用之前做点什么?

提前谢谢你!

【问题讨论】:

  • paint函数的开头这样做会有什么不同?
  • @cmannett85 - 它有缺点,例如每次实现paintEvent 时都必须包含它。可悲的是,似乎没有太多选择。也许继承QGraphicsScene...
  • 我可以在paint 中这样做,但这不会有效,每次调用paint 时我都必须这样做。这就是为什么我正在寻找另一种方式。
  • 如果之前的绘画调用已经完成了计算(例如使用“脏”标志),你不能跳过计算吗?
  • 是的,这也是一个解决方案!

标签: c++ qt qgraphicsitem


【解决方案1】:

QGraphicsView 具有函数showEvent(),如果你覆盖它,它将在项目的绘制函数之前被调用。你可以通过调用scene()函数来获取你的场景,之后你就可以获取所有的物品了。

【讨论】:

    猜你喜欢
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 2017-12-06
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 2019-09-01
    相关资源
    最近更新 更多