def paint(self, painter, option, parent):
if self.line.length() == 0.:
return
painter.setPen(self.arrow_pen)
painter.setRenderHint(QtGui.QPainter.Antialiasing)
painter.setCompositionMode(QtGui.QPainter.CompositionMode_SourceOver)
arrow_length = self.line.length() * .3
d = self.line.angle()
head_p1 = self.p2 - QtCore.QPointF(
num.sin(d*d2r + num.pi/3) * arrow_length,
num.cos(d*d2r + num.pi/3) * arrow_length)
head_p2 = self.p2 - QtCore.QPointF(
num.sin(d*d2r + num.pi - num.pi/3) * arrow_length,
num.cos(d*d2r + num.pi - num.pi/3) * arrow_length)
painter.drawLine(self.line)
painter.drawPolyline([head_p1, self.p2, head_p2])
评论列表
文章目录