Bonjour,

J'ai un problème de compréhension de la gestion des coordonnées dans un qgraphicsview.

J'ai crée une classe myview dérivée de qgraphicsview dans laquelle j"ai réécrit mousePressEvent, mouReleaseEvent, et mousMoveEvent ( je précises au cas ou ça a une importance mais je ne pense pas ).

Mon qgraphicsView contient une image. Voici le code d'init de ma vue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
  scene = new QGraphicsScene();
  view = new myview(scene);
     QPixmap pix=QPixmap::fromImage(image);
      img_fond=scene->addPixmap(pix);
      view->setScene(scene);
      view->fitInView(scene->sceneRect());
Lors d'un clic sur un bouton ( hors du qgraphicsview ), je dessine un rectangle via le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
    QGraphicsRectItem* ajout_rectangle = new  GraphicsRectItem(QRectF(100,100,100,100));
    ajout_rectangle->setPen(Qt::NoPen);   ajout_rectangle->setFlags(QGraphicsItem::ItemIsSelectable|QGraphicsItem::ItemIsMovable);
    ajout_rectangle->setBrush(QBrush(Qt::black));
    scene->addItem(ajout_rectangle);
J'ai aussi une fonction qui trace une droite une fois un bouton cliqué ( avec utilisation de mousPrressEvent, mouseMoevent, et mouseReleaseEvent pour son tracé )

Je n'arrive pas à avoir les coordonnées des différents élements.

Voici le code que j'utilise :

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
 
  QList<QGraphicsItem *> items=scene->items();
  for (int boucle=0;boucle<items.count();++boucle)
  {
    switch(items.at(boucle)->type())
    {
      case 3:
       qDebug()<<"qgraphicsPixmap";
       break;
      case 6:
       qDebug()<<"qgraphicsLine";
       break;
      case 7:
       qDebug()<<"qgraphicsrect";
       break;
    }
    qDebug()<<"  "<<items.at(boucle)->pos()<<items.at(boucle)->scenePos();
  }
Dans les tous les cas, pos et scenePos me retournent (0,0)

J'ai besoin de récuperer les coordonnées des différents QGraphicsItem afin de sauvegarder ma scene.

Merci pour votre aide.