def stroke_path(path, pen): """Create a QPainterPath stroke from the `path` drawn with `pen`. """ stroker = QPainterPathStroker() stroker.setCapStyle(pen.capStyle()) stroker.setJoinStyle(pen.joinStyle()) stroker.setMiterLimit(pen.miterLimit()) stroker.setWidth(max(pen.widthF(), 1e-9)) return stroker.createStroke(path)
def shape_from_path(self, path, pen): if path == QPainterPath() or pen == Qt.NoPen: return path ps = QPainterPathStroker() ps.setCapStyle(pen.capStyle()) ps.setWidth(pen.widthF()) ps.setJoinStyle(pen.joinStyle()) ps.setMiterLimit(pen.miterLimit()) p = ps.createStroke(path) p.addPath(path) return p