Pour les débutants :

Je cherchais à sélectionner un item précis dans un QGraphicsView, voici ma solution :

Au lieu d'utiliser QGraphicsView, j'utilise une version personnalisée pour intercepter le clic souris :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class myview : public QGraphicsView
{
public:
    myview(QGraphicsScene * scene)
    {
    }
 
protected:
    void mousePressEvent(QMouseEvent *event)
    {
        QGraphicsRectItem* myitem=dynamic_cast<QGraphicsRectItem*>(this->itemAt(event->pos()));
        if (myitem)
        {
            qDebug()<<"item clique"<<event->pos()<<this->itemAt(event->pos());
        }
        QGraphicsView::mousePressEvent(event);
    }
 
};
Ce code affiche les infos du QRectItem cliqué.

Pour sélectionner ensuite un élément bien précis il suffit de comparer le myitem avec le pointeur de l’élément précis.

Le truc, c'est de surcharger mousePressEvent

Si ça peut aider quelqu'un d'autre.