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 43 44 45 46 47 48 49
| import sys
from PyQt5.QtWidgets import (QApplication, QLabel, QWidget,QGraphicsView,QGraphicsScene,QGraphicsView,QGraphicsRectItem)
from PyQt5.QtGui import QPainter
class main(QWidget):
def __init__(self):
super().__init__()
self.initUI()
self.setMouseTracking(True)
global px, py
px = []
py = []
def initUI(self):
self.setGeometry(200, 200, 1000, 500)
self.setWindowTitle('Accueil')
self.label = QLabel(self)
self.label.resize(500, 40)
self.pos = None
def mousePressEvent(self, event):
global px,py
px.append(event.pos().x())
py.append(event.pos().y())
def mouseMoveEvent(self, event):
global distance
if len(px)>0:
distance = round(((event.x() - px[-1])**2 + (event.y() - py[-1])**2)**0.5)
self.label.setText('Coordinates: ( %d : %d )' % (event.x(), event.y()) + " Distance entre deux points : " + str(distance))
self.pos = event.pos()
self.update()
def paintEvent(self, event):
if self.pos and len(px) >0 :
qp = QPainter(self)
qp.drawLine(self.pos.x(), self.pos.y(), px[-1], py[-1])
txt_x=(self.pos.x()+px[-1])/2
txt_y=(self.pos.y()+py[-1])/2
qp.drawText(txt_x,txt_y-5, str(distance)+" m")
qp.end()
if __name__ == "__main__":
app = QApplication(sys.argv)
Form = main()
Form.show()
sys.exit(app.exec_())
app.exec_() |
Partager