Как более плавно контролировать толщину шрифта? - PullRequest
0 голосов
/ 09 июля 2020

Я хочу контролировать толщину штриха для любого символа, который я использовал font-weight, но почему толщина неоднородна?

import sys
from PyQt5 import QtWidgets, QtCore, QtGui

class Test(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.resize(500, 500)
        self.setStyleSheet('background: black;')        
        
        lay = QtWidgets.QGridLayout(self)
        lay.setSpacing(0)
        lay.setContentsMargins(0, 0, 0, 0)
        
        label_1 = QtWidgets.QLabel(self)
        label_1.setText("%")
        label_1.setStyleSheet('font-size: 200px;font-weight:900;')
        label_1.setAlignment(QtCore.Qt.AlignCenter)
        lay.addWidget(label_1, 0, 0, 1, 1)
        
        label_2 = QtWidgets.QLabel(self)
        label_2.setText("%")
        label_2.setStyleSheet('background:#00000000; font-size: 200px; color:pink;font-weight:800;')
        label_2.setAlignment(QtCore.Qt.AlignCenter)
        lay.addWidget(label_2, 0, 0, 1, 1)
        
        label_3 = QtWidgets.QLabel(self)
        label_3.setText("%")
        label_3.setStyleSheet('background:#00000000; font-size: 200px; color:purple;font-weight:700;')
        label_3.setAlignment(QtCore.Qt.AlignCenter)
        lay.addWidget(label_3, 0, 0, 1, 1)
        
        label_4 = QtWidgets.QLabel(self)
        label_4.setText("%")
        label_4.setStyleSheet('background:#00000000; font-size: 200px; color:blue;font-weight:600;')
        label_4.setAlignment(QtCore.Qt.AlignCenter)
        lay.addWidget(label_4, 0, 0, 1, 1)
        
        label_5 = QtWidgets.QLabel(self)
        label_5.setText("%")
        label_5.setStyleSheet('background:#00000000; font-size: 200px; color:green;font-weight:500;')
        label_5.setAlignment(QtCore.Qt.AlignCenter)
        lay.addWidget(label_5, 0, 0, 1, 1)
        
        label_6 = QtWidgets.QLabel(self)
        label_6.setText("%")
        label_6.setStyleSheet('background:#00000000; font-size: 200px; color:yellow;font-weight:400;')
        label_6.setAlignment(QtCore.Qt.AlignCenter)
        lay.addWidget(label_6, 0, 0, 1, 1)
        
        label_7 = QtWidgets.QLabel(self)
        label_7.setText("%")
        label_7.setStyleSheet('background:#00000000; font-size: 200px; color:orange;font-weight:300;')
        label_7.setAlignment(QtCore.Qt.AlignCenter)
        lay.addWidget(label_7, 0, 0, 1, 1)

        label_8 = QtWidgets.QLabel(self)
        label_8.setText("%")
        label_8.setStyleSheet('background:#00000000; font-size: 200px; color:red;font-weight:200;')
        label_8.setAlignment(QtCore.Qt.AlignCenter)
        lay.addWidget(label_8, 0, 0, 1, 1)
        
        label_9 = QtWidgets.QLabel(self)
        label_9.setText("%")
        label_9.setStyleSheet('background:#00000000; font-size: 200px; color:brown;font-weight:100;')
        label_9.setAlignment(QtCore.Qt.AlignCenter)
        lay.addWidget(label_9, 0, 0, 1, 1)
        
        label_10 = QtWidgets.QLabel(self)
        label_10.setText("%")
        label_10.setStyleSheet('background:#00000000; font-size: 200px; color:white;font-weight:0;')
        label_10.setAlignment(QtCore.Qt.AlignCenter)
        lay.addWidget(label_10, 0, 0, 1, 1)
        


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    w = Test()
    w.show()
    sys.exit(app.exec_())

введите описание изображения здесь

Не понимаю.

Как видите, толщина увеличивается не от контура, а от центра

Иногда бывает так, что символ состоит из несколько частей, то только какая-то часть утолщается.

Есть ли способ исправить? Создайте своего рода обводку для персонажа.

И чтобы это работало для иконок, созданных в iconmoon.

...