Я пишу программу, которая использует инфраструктуру графического представления Qt. Я подклассифицировал QGraphicsItem
классу, который включает в себя другие QGraphicsItem
(или другие его подклассы). Этот класс является родителем включенного QGraphicsItem
; идея заключается в работе с составными объектами.Как распространять mousePressEvent() в группу QGraphicsItems?
С docs это, кажется, конфликт в том, что я пытаюсь достичь:
- Вызов
ignore()
вmousePressEvent
сделает мой объект непоколебимы. Я хочу переместить его. - Вызов
accept()
вmousePressEvent
предотвратит распространение события на дочерний объект. Некоторые дочерние объекты должны реагировать на события мыши.
Как это сделать?
Вы считали, что событие отправлено каждому из детей элемента, если родительский обработчик вызывает QApplication :: postEvent? – kenrogers
Игнорировать мой последний комментарий. Плохая идея. См. Ответ Стайн ниже. – kenrogers
Я сейчас пытаюсь это сделать: Левое нажатие мыши - это начало действия перемещения, поэтому оно принимается в 'mousePressEvent()' и обрабатывается объектом. Ни один другой объект не получит событие. Для другого ввода (правая кнопка, клавиши-модификаторы) событие игнорируется и переходит к следующему объекту. Stynes666 прав насчет того, что есть что-то, что не имеет большого смысла. –