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

Python 正在截断QPushButton文本中的PyQt QHBoxLayout,python,pyqt,Python,Pyqt,我试图在按钮内放置一个复选框和一些文本,但我无法使按钮扩展到足以看到全文 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.checkL

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

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)

我尝试过添加拉伸、设置尺寸策略、设置边距和样式等各种组合,但到目前为止没有任何运气


谢谢

为按钮添加布局。将复选框放置在布局中。看起来这是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:调整大小
有问题。如果在向屏幕添加
checkButton
后调用,则此函数对我无效:

# works
self.checkButton.adjustSize()
self.checkButton.setParent(self)
# doesn't work
self.checkButton.setParent(self)
self.checkButton.adjustSize()
我的解决方案是手动调整大小,而不是调用
adjustSize

self.checkButton.setFixedSize(self.checkLayout.sizeHint())

谢谢你的回答。不过我还是很难让它工作。当我调用setFixedSize()时,我可以在按钮中正确地看到.size()更新(虽然sizehint仍然太小-我相信这是意料之中的),但它仍然以小尺寸显示在屏幕上。我也试着重新安排了陈述和家长的设置……有什么想法吗?嗯,这里有点奇怪。我没能重现你的烦恼。如果问题出在sizeHint()函数中,我只能建议使用丑陋的猴子补丁:
self.checkButton.sizeHint=self.checkButton.size