Я думаю, что ваша интерпретация документации неверна.
Вызов ignore()
в mousePressEvent
сделает мой объект неподвижным.
Я не верюэто правда.Мне кажется, что вызов ignore()
подобен объекту, говорящему: «Я оценил это событие. Я предпринял все действия, которые хочу сделать в ответ на это событие. Я также решил, что это не было предназначено для меня, поэтому я буду сейчаспередать его следующему объекту подо мной ".Я не могу найти ничего, что бы указывало на то, что событие ignore сбросит флаг QGraphicsItem::ItemIsMovable
(который решает, является ли объект QGraphicsItem подвижным или нет).
Я не понимаю, почему вы не смогли сделатьобъект перемещается и ignore()
событие, но я бы советовал, что это не разумный подход (в большинстве случаев: очевидно, у вас может быть причина для этого).
Вызовaccept()
в mousePressEvent
предотвратит распространение события на дочерний объект.
Я верю, что это правда, но родитель все еще может изменить своих потомков.Насколько я понимаю, вызов accept()
подобен объекту, говорящему: «Я оценил это событие. Я предпринял все действия, которые хочу выполнить в ответ на это событие (которое может включать изменение моих детей). Я также решил, что это событие было предназначенодля меня, поэтому я не буду проходить событие ".