我有一个布局,我添加了一堆小部件(QPushButton现在的,但可以是任何QWidget元素(,默认情况下,它们在添加时会填充整个宽度。由于我的自定义大小处理工作在此宽度上移动元素,因此它们将每个元素注册为与布局相同的大小,这导致我的函数移动它们,即使它们在我调整大小后更小。
那么,当我添加一个小部件时,有没有办法将其缩小到最小大小以容纳内容?大致如下:
item = QPushButton("somestuff") # | QLabel | QWidget | etc
item.setFixedWidth(item.contents.size().width())
要计算最小宽度,您可以使用 QFontMetrics
.
item = QPushButton("somestuff") # | QLabel | QWidget | etc
fm = QFontMetrics(item.font())
item.setFixedWidth(fm.width(item.text()))