PyQt5 QWidget将固定宽度设置为最小可用大小

时间:2018-04-08 20:10:15

标签: python python-3.x pyqt pyqt5 qwidget

我有一个布局,我添加了一堆小部件(QPushButton现在,但可以是任何QWidget元素),默认情况下,它们会在添加时填满整个宽度。由于我的自定义大小处理工作的宽度是移动元素,因此它们将每个元素注册为与导致我的函数移动它们的布局大小相同,即使它在我调整大小后它们更小。

那么,当我添加一个小部件时,有没有办法将其缩小到最小尺寸来保存内容?一些事情:

item = QPushButton("somestuff") # | QLabel | QWidget | etc
item.setFixedWidth(item.contents.size().width())

1 个答案:

答案 0 :(得分:1)

要计算最小宽度,您可以使用QFontMetrics

item = QPushButton("somestuff") # | QLabel | QWidget | etc
fm = QFontMetrics(item.font())
item.setFixedWidth(fm.width(item.text()))