У меня есть предмет, который является родителем некоторых других предметов. Это не группа, фактически этот элемент рисует кубическую кривую Безье, а дочерние элементы являются ее контрольными точками.
Проблема в том, что перемещение дочерних элементов приведет к изменению геометрии, поэтому я должен вызвать родительский prepareGeometryChange()
когда дети перемещаются, но этот метод защищен.
Это всего лишь пример, и в общем вопрос, на который я ищу ответ:
когда QGraphicsItem
имеет геометрию, которая зависит от его дочерних элементов, и дочерние элементы могут перемещаться при взаимодействии с пользователем, как я могу использовать prepareGeometryChange()
?
Нужно ли это называть? Разве неправильно строить предметы таким образом и использовать детей для этой цели?
Я помню ту же проблему для себя, я повторно реализовал
QGraphicsItem::itemChange(GraphicsItemChange change, const QVariant & value)
для детей и родителей.
Когда каждый change
был QGraphicsItem::ItemPositionChange
тот ребенок испускает сигнал, и у родителя есть соответствующий слот.
Других решений пока нет …