Bonjour à vous tous

Je tente d'ajouter un item (ellipse dans mon cas), sur une scene via un clic de souris. Le soucis étant que quand je clique à un endroit dans ma scene, l'ellipse se forme plus loin (la distance entre mon clic et l'ellipse tracé équivaut à la distance entre l'origine de ma scene et l'origine de mon application.)

Une petite photo :



Et mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
    def paintMarkers(self,event):
        self.circleItem = QGraphicsEllipseItem(0.,0.,10.,10.)
        self.circleItem.setPos(self.p.x(), self.p.y())
        self.scene.addItem(self.circleItem)
    def mousePressEvent(self, event):
        self.view.setCursor(QtGui.QCursor(QtCore.Qt.CrossCursor))
        self.p = self.view.mapToScene(event.pos())
        self.paintMarkers(event)
et mon scene est déclaré ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
       self.scene = QGraphicsScene()
        self.scene.addPixmap(QPixmap.fromImage(im))
        self.view.setCursor(Qt.CrossCursor)
        self.view.setAlignment(QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
        self.view.setScene(self.scene)
        self.view.setTransformationAnchor(QGraphicsView.AnchorUnderMouse)
        self.view.setDragMode(QGraphicsView.RubberBandDrag)
        self.view.update()
        self.view.fitInView(QRectF(0, 0, w, h), Qt.KeepAspectRatio)
J'ai essayé toute la journée avec les mapToScene, mapFromScene etc.... Impossible de caler correctement les items à l'endroit ou je clique.
Je pense qu'il suffirait que je retranche l'origine de ma scene par rapport à mon application, mais je ne sais pas comment trouver les coordonnées de ma scene relative à l'origine de l'application.
Pour faire quelque chose du genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
        self.circleItem.setPos(self.p.x()-originerelativescene, self.p.y()-originerelativescene)
Avez vous une idée de comment faire ça ?

En vous remerciant par avance,

Jonathan