コード例 #1
0
ファイル: qvharfbuzz.py プロジェクト: simoncozens/flux
    def paintEvent(self, e):
        if not self.buf:
            return
        qp = QPainter()
        qp.begin(self)
        g = QGlyphRun()
        g.setRawFont(self.rf)
        g.setGlyphIndexes([x.codepoint for x in self.buf.glyph_infos])
        pos = (0, 0)
        poses = []
        for _p in self.buf.glyph_positions:
            p = _p.position
            # Y coordinates go down, not up.
            poses.append(self.scale_point(pos[0] + p[0], pos[1] - p[1]))
            pos = (pos[0] + p[2], pos[1] + p[3])

        g.setPositions(poses)
        qp.drawGlyphRun(e.rect().marginsRemoved(self.margins).bottomLeft(), g)
        qp.end()