From c8690b391048070097b470a0ef1705d819dde144 Mon Sep 17 00:00:00 2001 From: Alexandre Courbot Date: Fri, 31 Dec 2010 19:01:36 +0900 Subject: [PATCH] Some more work with fancy renderer --- viewer.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/viewer.py b/viewer.py index f8e4ca605..429524964 100755 --- a/viewer.py +++ b/viewer.py @@ -170,12 +170,24 @@ class FancyStrokeRenderer: else: self.fallback.renderStroke(painter, stroke) return + ppen = QtGui.QPen(self.strokesPen) ppen.setCapStyle(QtCore.Qt.RoundCap) + segmentLength = stroke.qPath.length() / len(layout) + startPoint = 0.0 for i in range(len(layout)): ppen.setWidthF(self.basicWeight + (3.8 - 0.1 * layout[i]) * self.weightFactor) - painter.setPen(ppen) - painter.drawPoint(stroke.qPath.pointAtPercent(i * (1.0 / len(layout)))) + self.renderPartialStroke(painter, ppen, stroke.qPath, startPoint, segmentLength) + startPoint += segmentLength + + def renderPartialStroke(self, painter, pen, stroke, startPoint, segmentLength): + painter.save() + ppen = QtGui.QPen(pen) + dashes = [ 0.0, startPoint / ppen.widthF(), segmentLength / ppen.widthF(), stroke.length() / ppen.widthF() ] + ppen.setDashPattern(dashes) + painter.setPen(ppen) + painter.drawPath(stroke) + painter.restore() class StrokesWidget(QtGui.QWidget): def __init__(self, parent = None):