我有一个项目是其他一些项目的父项。它不是一个组,实际上这个项目绘制了一个三次贝塞尔曲线,而子项是它的控制点。
问题是移动子项将导致几何更改,因此我应该在移动子项时调用父项prepareGeometryChange()
,但该方法受到保护。
这只是一个例子,一般来说,我正在寻求答案的问题是:
当QGraphicsItem
具有依赖于其子项的几何体,并且子项可通过用户交互移动时,如何使用prepareGeometryChange()
?
有必要打电话吗?以这种方式构建项目并为此目的使用子项是错误的吗?
答案 0 :(得分:1)
我为自己记得同样的问题,我重新实施了
QGraphicsItem::itemChange(GraphicsItemChange change, const QVariant & value)
为孩子和父母。
当每个change
是QGraphicsItem::ItemPositionChange
时,孩子会发出信号,并且父母有相应的广告位。