Bonjour,
C'est encore moi. J'ai trouvé ce petit bout de code fort intéressant qui permet de dessiner via le curseur de la souris. Le résultat que je souhaite obtenir c'est de pouvoir dessiner par dessus une photo afin d'y mettre des annotations.
Je galère un peu avec les différents widgets (QLabel, QWidget, QGraphicsView) qui permettent ou non d'afficher une photo.
Est-ce que peux directement intégrer une photo dans mon QGraphicsView ou est-ce que je dois passer par un autre widget ?
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 from PyQt4 import QtGui, QtCore import sys class GraphicsView(QtGui.QGraphicsView): start = None end = None item = None path = None def __init__(self, parent = None): super(GraphicsView, self).__init__() self.setScene(QtGui.QGraphicsScene()) self.path = QtGui.QPainterPath() self.item = GraphicsPathItem() self.scene().addItem(self.item) def mousePressEvent(self, event): self.start = self.mapToScene(event.pos()) self.path.moveTo(self.start) def mouseMoveEvent(self, event): self.end = self.mapToScene(event.pos()) self.path.lineTo(self.end) self.start = self.end self.item.setPath(self.path) class GraphicsPathItem(QtGui.QGraphicsPathItem): def __init__(self): super(GraphicsPathItem, self).__init__() pen = QtGui.QPen() pen.setColor(QtGui.QColor("black")) pen.setWidth(10) self.setPen(pen) if __name__ == '__main__': app = QtGui.QApplication(sys.argv) mw = GraphicsView() mw.show() sys.exit(app.exec_())
Partager