在调用 QGraphicsItem::paint 之前
Posted
技术标签:
【中文标题】在调用 QGraphicsItem::paint 之前【英文标题】:Before QGraphicsItem::paint will be called 【发布时间】:2013-05-11 20:59:27 【问题描述】:我正在做一个项目,我使用QGraphicsScene
、QGraphicsViwe
、QGraphicsItem
。我想在调用QGraphicsItem::paint
之前做一些计算。
那么有没有办法在QGraphicsItem::paint
被调用之前做点什么?
提前谢谢你!
【问题讨论】:
在paint
函数的开头这样做会有什么不同?
@cmannett85 - 它有缺点,例如每次实现paintEvent 时都必须包含它。可悲的是,似乎没有太多选择。也许继承QGraphicsScene
...
我可以在paint
中这样做,但这不会有效,每次调用paint 时我都必须这样做。这就是为什么我正在寻找另一种方式。
如果之前的绘画调用已经完成了计算(例如使用“脏”标志),你不能跳过计算吗?
是的,这也是一个解决方案!
【参考方案1】:
QGraphicsView
具有函数showEvent()
,如果你覆盖它,它将在项目的绘制函数之前被调用。你可以通过调用scene()
函数来获取你的场景,之后你就可以获取所有的物品了。
【讨论】:
以上是关于在调用 QGraphicsItem::paint 之前的主要内容,如果未能解决你的问题,请参考以下文章
在 JSX 中调用 javascript 函数:为啥在没有 () 的情况下调用函数?