移动QGraphisItem中的子项目

Moving children items in QGraphisItem

本文关键字:子项目 QGraphisItem 移动      更新时间:2023-10-16

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

问题是移动子项会导致几何变化,所以我应该在移动子项时调用parent的prepareGeometryChange(),但该方法是受保护的。

这只是一个例子,总的来说,我要寻求答案的问题是:

当一个QGraphicsItem的几何依赖于它的子结点,并且子结点可以通过用户交互移动,我如何使用prepareGeometryChange() ?

有必要调用它吗?以这种方式建造物品并将儿童用于此目的是错误的吗?

我自己也记得同样的问题,我重新实现了

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

为子代和父代。

当每个changeQGraphicsItem::ItemPositionChange时子节点发出一个信号,父节点有对应的槽位