Почему символ  не переводится на ✰ внутри paintEvent? - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть этот код

import sys
import os 
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

DIR_PATH = os.path.dirname(os.path.realpath(__file__))

class ThinLabel(QLabel):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

    def paintEvent(self, event):
        qp = QPainter(self)
        qp.setRenderHint(QPainter.Antialiasing)
        path = QPainterPath()
        path.addText(event.rect().bottomLeft(), self.font(), self.text())
        qp.setPen(QPen(self.palette().color(QPalette.Window), 2))
        qp.setBrush(self.palette().text())
        qp.drawPath(path)


class Template(QWidget):

    def __init__(self):
        url = os.path.join(DIR_PATH, "my-font.ttf")
        font_id = QFontDatabase.addApplicationFont(url)
        if font_id == -1:
            print('not font')
        font = QFont("my-font",18)

        super().__init__()
        grid = QGridLayout(self)
        grid.addWidget(QLabel('<div>&#xe202;</div>'), 0, 0)
        grid.addWidget(ThinLabel('<div>&#xe202;</div>'), 1, 0)
        self.setStyleSheet('''
        QLabel {
            font-size: 80pt;
            font-family: my-font;
        }''')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    gui = Template()
    gui.show()
    sys.exit(app.exec_())

И мне нужно сделать персонаж немного тоньше Но текст не переводится в символ внутри paintEvent

enter image description here

Как перевести текст в символ?

Я пытался

подключить шрифт внутри ThinLabel (QLabel)

создать другую метку внутри ThinLabel (QLabel), но setBru sh не принимает self.label.palette (). text ()

...