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
|
class MyScene(QGraphicsScene):
def __init__(self, *args, **kwargs):
super(MyScene, self).__init__(*args, **kwargs)
self.path_item = self.addPath(QPainterPath())
self.pos = None
global k
k = 0
def mouseMoveEvent(self, event):
global nx, ny
nx = event.scenePos().x()
ny = event.scenePos().y()
if k != 0:
self.drawline()
self.update()
def mouseDoubleClickEvent(self, event):
global cx, cy, k
cx = event.scenePos().x()
cy = event.scenePos().y()
k = 1
def mousePressEvent(self, event):
if event.button() == Qt.RightButton:
global k
k = 0
def drawline(self):
path = QPainterPath()
path.moveTo(cx, cy)
path.lineTo(nx, ny)
dist = round(((nx - cx) ** 2 + (ny - cy) ** 2) ** 0.5)
text = ("Distance : {}".format(dist))
path.addText((cx + nx) / 2, (cy + ny) / 2, QFont('Times', 20), text)
self.path_item.setPath(path) |
Partager