Автоматическая настройка размера QLabel в соответствии с текстом, который он содержит - PullRequest
1 голос
/ 11 февраля 2020

У меня есть QLabel, и я хотел бы отрегулировать его размер в соответствии с текстом, который он содержит (плюс немного полей по бокам). Я пробовал это:

self.WarnLab = QtGui.QLabel(self.HeaderRight)
font = QtGui.QFont()
font.setFamily(_fromUtf8("Avenir"))
font.setPointSize(18)
font.setBold(True)
font.setItalic(False)
font.setWeight(75)
self.WarnLab.setFont(font)
self.WarnLab.setObjectName("WarnLab")
r = self.WarnLab.fontMetrics().boundingRect(_translate("MainWindow","This is some, \nlonger multi-line text blahblahblah!",None))
self.WarnLab.fixedWidth(r.width())
self.WarnLab.fixedHeight(r.height())
self.WarnLab.setStyleSheet(_fromUtf8("QLabel { background-color : orange; color : white;}"))
self.gridLayout_2.addWidget(self.WarnLab, 0,0,0,0)

, но QLabel не имеет свойства fixedWidth(), т.е. это не будет работать. Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 11 февраля 2020

Если вам нужно установить фиксированные размеры в виджетах, тогда вы должны использовать setFixedWidth(), setFixedHeight() и / или setFixedSize():

self.WarnLab.setFixedSize(r.size()) 

или

self.WarnLab.setFixedWidth(r.width())
self.WarnLab.setFixedHeight(r.height())

Если вы хотите узнать все методы QLabel или любого другого виджета, вы должны проверить документы Qt, например здесь - это документы QLabel, и если вам нужны все методы, вы должны щелкнуть по разделу «Список всех членов, включая унаследованные» .

...