我试图在按钮内放置一个复选框和一些文字,但是我无法让按钮扩展到足以看到全文。
self.check = QtGui.QCheckBox("long text", self)
self.checkLayout = QtGui.QHBoxLayout()
self.checkLayout.addWidget(self.check)
self.checkButton = QtGui.QPushButton(None, self)
self.checkButton.setLayout(self.checkLayout)
我尝试了各种组合添加延伸,设置尺寸政策,设置边距和样式等但到目前为止还没有运气。
由于
答案 0 :(得分:1)
为按钮添加布局。将复选框放在布局中。看起来这是QWidget自动跟踪其子窗口大小的唯一方法。
但QWidget并没有自动调整自身大小以适应其内容。您必须调用adjustSize
函数才能执行此操作。
class TestWidget(QtGui.QWidget):
def __init__(self, *args):
QtGui.QWidget.__init__(self, *args)
self.check = QtGui.QCheckBox("very very long text")
self.checkLayout = QtGui.QHBoxLayout()
self.checkLayout.addWidget(self.check)
self.checkButton = QtGui.QPushButton()
self.checkButton.setLayout(self.checkLayout)
self.checkButton.adjustSize()
self.checkButton.setParent(self)
UPD :adjustSize
出现问题。如果我在之后将<{>>添加到屏幕上,将此功能称为,则此功能对我无效:
checkButton
我的解决方案是手动调整大小而不是调用# works
self.checkButton.adjustSize()
self.checkButton.setParent(self)
# doesn't work
self.checkButton.setParent(self)
self.checkButton.adjustSize()
:
adjustSize