1

他のアイテムの親であるアイテムがあります。これはグループではありません。実際、このアイテムは3次ベジェ曲線を描き、子がそのコントロールポイントです。

問題は、子アイテムを移動するとジオメトリが変更されるため、prepareGeometryChange()子が移動されたときに親を呼び出す必要がありますが、そのメソッドは保護されています。

これは単なる例であり、一般的に私が答えを求めている質問は次のとおりです。

aQGraphicsItemがその子に依存するジオメトリを持ち、子がユーザーの操作によって移動可能である場合、どのように使用しprepareGeometryChange()ますか?

それを呼ぶ必要がありますか?このようにアイテムを作成し、この目的で子を使用するのは間違っていますか?

4

1 に答える 1

1

同じ問題を自分で覚えています。再実装しました

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

子供と親の両方のために。

それぞれchangeがだったとき、QGraphicsItem::ItemPositionChangeその子は信号を発し、親は対応するスロットを持っています。

于 2013-03-05T12:56:01.233 に答える