def set_text_image(self, text, color=Qt.gray):
        """
        Set the item picture based on an SVG file created from the given text.
        :param text: Text to be rendered as SVG.
        :type text: str
        :param color: Font color
        :type color: QColor
        """
        w, h = 200, 50
        svg_path = self._gen_svg_path()
        svg_gen = QSvgGenerator()
        svg_gen.setFileName(svg_path)
        svg_gen.setTitle('QrBarCodeLayoutItem')
        svg_gen.setDescription('Image generated by QrBarCodeLayoutItem plugin')
        svg_gen.setSize(QSize(w, h))
        svg_gen.setViewBox(QRect(0, 0, w, h))

        # Paint text
        font = QFont('Arial', 14, QFont.Bold)
        p = QPainter()
        p.begin(svg_gen)
        p.setFont(font)
        p.setPen(color)
        p.drawText(QPointF(10, 20), text)
        p.end()

        # Set picture path
        self.setPicturePath(svg_path)
Beispiel #2
0
 def _svgPaintDevice(self, name, sourceRect, targetRect):
     """Get QSvgGenerator as paint device"""
     generator = QSvgGenerator()
     generator.setDescription("This SVG was generated with the geoCore "
         "plugin of QGIS, written by T-Systems on site services GmbH")
     generator.setTitle("geoCore")
     generator.setSize(sourceRect.size().toSize())
     generator.setViewBox(targetRect)
     generator.setFileName(name)
     return generator