Итак, вот моя проблема:
У меня есть сцена, с объектами A и B.
Я добавляю объект C, как дочерний элемент A, и D, как дочерний элемент B.
Я хочу видеть обоих детей на вершине обоих родителей, то есть я хочу C перед A и B, хотя A находится за B.
Возможно ли без потери наследства?
Это может вызвать другие проблемы, но вы можете взглянуть на не использование системы родительского контроля GraphicsItem.
Это оставляет два варианта: -
1) Обращайтесь с родителями самостоятельно, а это значит, что каждый родительский элемент Qt является GraphicsScene, что позволяет использовать setZValue. Затем вам придется обрабатывать преобразование и перевод элементов относительно родителя.
2) Используйте QGraphicsItemGroup, который может разрешить вызов setZValue для элементов группы, как и ожидалось, но должен обрабатывать перемещаемые элементы как группу, а вам приходится вручную переводить и преобразовывать дочерние элементы. Я сам не пробовал, но должен быть достаточно прост, чтобы проверить это.
Раньше я использовал первый метод, который работает, но включает в себя запись большого количества кода, который Qt обычно дает вам через систему воспитания.