class QCustomLabel(QLabel):
    def __init__(self, text):
        super(QCustomLabel, self).__init__(text)
        self.font = QFont('Source Han Code JP Medium', 11)
        self.font.insertSubstitutions(
            'Source Han Code JP Medium',
            ['Source Han Code JP N', '源ノ角ゴシック Code JP M', '源ノ角ゴシック Code JP N'])
        self.setFont(self.font)
        self.setAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignHCenter)
        self.setContentsMargins(-3, -1, -3, -1)
        self.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)
        self.fontScale = 1.0

    def setFontFamily(self, face):
        self.font.setFamily(face)

    def setFontScale(self, scale):
        self.fontScale = scale

    def resizeEvent(self, evt):
        width = self.size().width() / len(self.text())
        height = self.size().height()
        baseSize = 0
        if width > height:
            baseSize = height
        else:
            baseSize = width

        self.font.setPixelSize(baseSize * self.fontScale)
        self.setFont(self.font)
Beispiel #2
0
 def fontSans(self):
     sans = QFont('IPAexGothic')
     alternatives = ['Noto Sans CJK TC', 'Microsoft YaHei']
     sans.insertSubstitutions('IPAexGothic', alternatives)
     sans.setStyleStrategy(QFont.PreferAntialias)
     return sans