C++ (Qt)
QPoint p( mapToScene( e->pos() ).toPoint() );
QGraphicsItem* item = itemAt( p );
PS. Если елементы пересекаются, используйте items().
Это работает, если найти точку с точностью до сотых. Попробовал через items(x,y, h, w), вроде работает, если сцену выровнять с координтной системой View. Методом тыка получил setSceneRect(-9, -159, w, h), не знаю почему так.
Так же узнать item на который кликнули можно используя:
C++ (Qt)
QGraphicsView::mouseMoveEvent(event);
QGraphicsItem * item = scene()->mouseGrabberItem();
Только в этом случае item-ы должны принимать события мыши, иначе будет 0.
Работает, но только 1 раз. Потом данное событие срабатывает в любом случае, куда бы я не кликнул на сцене. То есть, нажимаю на айтем1, выводится информация об айтем1. Потом, куда бы я не кликал, выводится информация айтем1.
Прописал e->accept(). Не помогает, фокус остаётся на первом айтеме.