def svg_to_png(svg_path, png_path): """ inspired by https://stackoverflow.com/questions/8551690/how-to-render-a-scaled-svg-to-a-qimage """ renderer = QSvgRenderer(svg_path) print(renderer) print(renderer.viewBoxF()) print(renderer.defaultSize()) image = QImage(width, height, QImage.Format_ARGB32) painter = QPainter(image) renderer.render(painter) image.save(png_path) painter.end()
class SVGButton(QGraphicsObject): def __init__(self, fname, parent=None): super(SVGButton, self).__init__(parent) self.svg = QSvgRenderer(fname) def paint(self, painter, options, widget): self.svg.render(painter, self.boundingRect()) def boundingRect(self): return self.svg.viewBoxF() clicked = pyqtSignal() def mousePressEvent(self, event): self.clicked.emit()