Могу ли я сложить объекты в QGraphicsScene в произвольном порядке?

0

Итак, вот моя проблема:

У меня есть сцена, с объектами A и B.

Я добавляю объект C, как дочерний элемент A, и D, как дочерний элемент B.

Я хочу видеть обоих детей на вершине обоих родителей, то есть я хочу C перед A и B, хотя A находится за B.

Возможно ли без потери наследства?

  • 1
    Нет там готовых решений. Одним из обходных путей является C как потомок B, затем отслеживание изменений положения A и B и пересчет положения C.
  • 0
    Да, это то, что я хотел бы избежать, спасибо, хотя :)
Теги:
qt

1 ответ

1
Лучший ответ

Это может вызвать другие проблемы, но вы можете взглянуть на не использование системы родительского контроля GraphicsItem.

Это оставляет два варианта: -

1) Обращайтесь с родителями самостоятельно, а это значит, что каждый родительский элемент Qt является GraphicsScene, что позволяет использовать setZValue. Затем вам придется обрабатывать преобразование и перевод элементов относительно родителя.

2) Используйте QGraphicsItemGroup, который может разрешить вызов setZValue для элементов группы, как и ожидалось, но должен обрабатывать перемещаемые элементы как группу, а вам приходится вручную переводить и преобразовывать дочерние элементы. Я сам не пробовал, но должен быть достаточно прост, чтобы проверить это.

Раньше я использовал первый метод, который работает, но включает в себя запись большого количества кода, который Qt обычно дает вам через систему воспитания.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню