How exactly does addStretch work in QBoxLayout?

Viewed 41100

I'm doing a PyQt4 tutorial about box layouts. But I dont understand how addStretch works.

  • If i use vbox.addStretch(1) and hbox.addStretch(1), the two buttons appear down-right. Why?
  • if i comment vbox.addStretch(1) and hbox.addStretch(1) out, the two buttons appear in the center of my window, and they're deformable horizontally, but not vertically. Why?
  • theres no difference if I change the value "1"... so what does the value do?

Below is the code I'm using:

import sys
from PyQt4 import QtGui

class BoxLayout(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.setWindowTitle('box layout')

        ok = QtGui.QPushButton("OK")
        cancel = QtGui.QPushButton("Cancel")

        vbox = QtGui.QHBoxLayout()
        vbox.addStretch(1)
        vbox.addWidget(ok)
        vbox.addWidget(cancel)

        hbox = QtGui.QVBoxLayout()
        hbox.addStretch(1)
        hbox.addLayout(vbox)

        self.setLayout(hbox)

        self.resize(100, 100)

app = QtGui.QApplication(sys.argv)
qb = BoxLayout()
qb.show()
sys.exit(app.exec_())
1 Answers
Related