0
전체 텍스트가 항상 QLabel에 맞도록 텍스트의 글꼴 크기를 조정하는 QLabel 위젯을 만들려고합니다.QLabel의 setText() 덮어 쓰기
class QLabelFontAutoResize(QLabel):
def __init__(self, text):
super(QLabelFontAutoResize, self).__init__()
self._text = text
self.setText(self._text)
def setText(self, text):
width = float(self.size().width())
_font = self.font()
_fontSize = 1
#Find Correct Font Size
while (True):
_font.setPointSize(_fontSize)
_fontMetric = QFontMetrics(_font)
#Text width exceeds QLabel width
if _fontMetric.width(text) > width:
_fontSize = _fontSize-1
break
_fontSize = _fontSize + 1
_font.setPointSize(_fontSize)
self.setFont(_font)
#This is recursive, How do I actually set the Text
self.setText(text)
어떻게 재귀 함수를 작성하지 않고의 setText()를 오버라이드 (override) 할, 실제로 QLabel의 텍스트를 설정?
참고 : QLabel은 고정 크기이며 크기가 조정되지 않으므로 resizeEvent를 재정의하지 않습니다. 텍스트를 설정할 때 글꼴을 변경하고 싶습니다.
'슈퍼()의 setText (텍스트)' – furas