Перемещение дочерних элементов в QGraphisItem

У меня есть предмет, который является родителем некоторых других предметов. Это не группа, фактически этот элемент рисует кубическую кривую Безье, а дочерние элементы являются ее контрольными точками.

Проблема в том, что перемещение дочерних элементов приведет к изменению геометрии, поэтому я должен вызвать родительский prepareGeometryChange() когда дети перемещаются, но этот метод защищен.

Это всего лишь пример, и в общем вопрос, на который я ищу ответ:

когда QGraphicsItem имеет геометрию, которая зависит от его дочерних элементов, и дочерние элементы могут перемещаться при взаимодействии с пользователем, как я могу использовать prepareGeometryChange()?

Нужно ли это называть? Разве неправильно строить предметы таким образом и использовать детей для этой цели?

1

Решение

Я помню ту же проблему для себя, я повторно реализовал

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

для детей и родителей.

Когда каждый change был QGraphicsItem::ItemPositionChange тот ребенок испускает сигнал, и у родителя есть соответствующий слот.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]