Как контролировать толщину символа?
Я не знаю в чем дело но когда я использую font-weight то кроме значений между 487 и 488 я нечего не нахожу еще я нашел очень толстую обводку между 9999 и 100000000000.
В интернете я нашел только setWeightно он не работает.
Я бы хотел нормально и точно контролировать толщину символов. Но не знаю что для этого нужно делать.
import sys
from PyQt5 import QtWidgets, QtCore, QtGui
class Test(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.resize(500, 500)
self.setStyleSheet('background: red;')
lay = QtWidgets.QGridLayout(self)
lay.setSpacing(0)
lay.setContentsMargins(0, 0, 0, 0)
label_1 = QtWidgets.QLabel(self)
label_1.setText("1")
label_1.setStyleSheet('font-size: 200px;font-weight:488;')
label_1.setAlignment(QtCore.Qt.AlignCenter)
lay.addWidget(label_1, 0, 0, 1, 1)
label_2 = QtWidgets.QLabel(self)
label_2.setText("1")
label_2.setStyleSheet('background:#00000000; font-size: 200px; color:blue;font-weight:487;')
label_2.setAlignment(QtCore.Qt.AlignCenter)
lay.addWidget(label_2, 0, 0, 1, 1)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = Test()
w.show()
sys.exit(app.exec_())
Update
Я сделал 10 labels и увиличил толщену каждого на 100
Но плавность я так и не получил.
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("1")
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("1")
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("1")
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("1")
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("1")
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("1")
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("1")
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("1")
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("1")
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("1")
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_())
Ответы (1 шт):
Ваш код верен, нужно только следить за значением font-weight. Оно лежит в промежутке от 100 до 900 включительно, и обязательно должно быть кратно 100 (то есть можно использовать 100, 200, 300, ..., 900).
Скриншот, показывающий разницу между минимальным (100) и максимальным (900) значениями font-weight:

