在QGraphicsItem中移动子项

时间:2013-03-05 12:49:26

标签: c++ qt qt4 qgraphicsitem

我有一个项目是其他一些项目的父项。它不是一个组,实际上这个项目绘制了一个三次贝塞尔曲线,而子项是它的控制点。

问题是移动子项将导致几何更改,因此我应该在移动子项时调用父项prepareGeometryChange(),但该方法受到保护。

这只是一个例子,一般来说,我正在寻求答案的问题是:

QGraphicsItem具有依赖于其子项的几何体,并且子项可通过用户交互移动时,如何使用prepareGeometryChange()

有必要打电话吗?以这种方式构建项目并为此目的使用子项是错误的吗?

1 个答案:

答案 0 :(得分:1)

我为自己记得同样的问题,我重新实施了

QGraphicsItem::itemChange(GraphicsItemChange change, const QVariant & value)

为孩子和父母。

当每个changeQGraphicsItem::ItemPositionChange时,孩子会发出信号,并且父母有相应的广告位。