Редактировать: Использовать QGraphicsItem :: installSceneEventFilter , как предложено в ответе @ Frank.Пример:
QGraphicsScene scene;
QGraphicsEllipseItem *ellipse = scene.addEllipse(QRectF(-10, -10, 20, 20));
QGraphicsLineItem *line = scene.addLine(QLineF(-10, -10, 20, 20));
line->installSceneEventFilter(ellipse);
// line's events are filtered by ellipse's sceneEventFilter() function.
ellipse->installSceneEventFilter(line);
// ellipse's events are filtered by line's sceneEventFilter() function.
Первое, что пришло мне в голову, было:
Создать новый класс, производный от обоих QGraphicsItem
и QObject
, поскольку они не связаны (насколько мне кажется, если взглянуть на документы), у вас должно быть то, что вы хотели.
.... Но потом я более внимательно посмотрел на документы и обнаружил QGraphicsObject,что, вероятно, именно то, что вы хотите, он даже уже имеет член eventFilter