如何在PyQt4中的水平布局中拉伸单个小部件?

5

这里的三个按钮大小都相同,如何增加第一个按钮的大小,使其占据比其他两个按钮更多的空间。

from PyQt4 import QtGui
import sys

class AllWidgets(QtGui.QWidget):

    def __init__(self):
        super(AllWidgets, self).__init__()
        layout = QtGui.QHBoxLayout()
        #code for pushbutton 1
        pushbutton_1 = QtGui.QPushButton()
        pushbutton_1.setText('First')
        layout.addWidget(pushbutton_1)
        #code for pushbutton 2
        pushbutton_2 = QtGui.QPushButton()
        pushbutton_2.setText('Second')
        layout.addWidget(pushbutton_2)
        #code for pushbutton 3
        pushbutton_3 = QtGui.QPushButton()
        pushbutton_3.setText('Third')
        layout.addWidget(pushbutton_3)
        self.setLayout(layout)

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    display = AllWidgets()
    display.show()
    sys.exit(app.exec_())
1个回答

7
addWigdet() 的第二个(可选)参数是拉伸系数。如果您想要第一个按钮被拉伸,只需执行以下操作:
layout.addWidget(pushbutton_1, 1)

如果你想让所有按钮进行拉伸,但第一个按钮要更大一些,你只需要使用不同的拉伸因子:
layout.addWidget(pushbutton_1, 2)
layout.addWidget(pushbutton_2, 1)
layout.addWidget(pushbutton_3, 1)

谢谢,但这种拉伸只会在我最大化窗口后发生,我能做些什么来使第一次显示输出时未最大化时,第一个按钮占用更多空间? - user1994124
你可以尝试使用 pushbutton_1.setMinimumWidth() 来设置你想要的最小宽度(以像素为单位)。或者,如果你愿意,也可以使用 self.setMinimumWidth() 来设置窗口的最小宽度。 - Charles Brunet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接