根据其中包含的文本自动调整QLabel的大小

时间:2020-02-11 01:06:25

标签: python pyqt pyqt4 qlabel

我有一个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 :(得分:0)

如果需要在小部件中设置固定尺寸,则必须使用setFixedWidth()setFixedHeight()和/或setFixedSize()

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

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

如果您想了解QLabel的所有方法或任何其他小部件,则应检查Qt的文档,例如here是QLabel的文档,并且如果想要所有方法,则必须单击"List of all members, including inherited members"部分。