QPushButton文本中的PyQt QHBoxLayout正在被截断

时间:2015-06-21 07:34:08

标签: python pyqt

我试图在按钮内放置一个复选框和一些文字,但是我无法让按钮扩展到足以看到全文。

enter image description here

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)

我尝试了各种组合添加延伸,设置尺寸政策,设置边距和样式等但到目前为止还没有运气。

由于

1 个答案:

答案 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