Replying to self with a solution in case someone else comes across this problem. david_boddie on freenode's #pyqt channel helped me out.
A solution was to call.... layout.setRowStretch(len(labels), 1) ... after adding the spacer. Another solution was to nest the grid layout into a BoxLayout and call addStretch. On Mon, Aug 26, 2013 at 9:36 AM, Eric Frederich <eric.freder...@gmail.com>wrote: > Would appreciate some help here. > I don't like how these stacked widgets take up all of this vertical space > when the window is resized. > I have tried setting a size policy to minimum on the stacked widgets but > no luck. > > > On Fri, Aug 23, 2013 at 4:02 PM, Eric Frederich > <eric.freder...@gmail.com>wrote: > >> Here is a small example. >> I tried putting a vertical spacer on the bottom yet these stacked widgets >> want to take up space when resized. >> >> #!/usr/bin/env python >> >> from PyQt4.QtCore import * >> from PyQt4.QtGui import * >> >> class TestWidget(QWidget): >> def __init__(self, labels, parent=None): >> super(TestWidget, self).__init__(parent) >> >> layout = QGridLayout() >> for i, output in enumerate(labels): >> >> layout.addWidget(QLabel(output), i, 0) >> combo = QComboBox() >> combo.addItems([ >> "Slider", >> "Spinner", >> ]) >> layout.addWidget(combo, i, 1) >> >> stack = QStackedWidget() >> >> horizontalSlider = QSlider() >> horizontalSlider.setOrientation(Qt.Horizontal) >> >> spinner = QSpinBox() >> >> spinner.valueChanged.connect(horizontalSlider.setValue) >> horizontalSlider.valueChanged.connect(spinner.setValue) >> >> stack.addWidget(horizontalSlider) >> stack.addWidget(spinner) >> >> combo.currentIndexChanged.connect(stack.setCurrentIndex) >> >> layout.addWidget(stack, i, 2) >> >> vertical_spacer = QSpacerItem(0, 0, QSizePolicy.Minimum, >> QSizePolicy.Expanding) >> layout.addItem(vertical_spacer, len(labels), 0, 1, 3) >> >> self.setLayout(layout) >> >> if __name__ == '__main__': >> import sys >> app = QApplication(sys.argv) >> ocw = TestWidget(['a', 'b', 'c', 'd', 'e']) >> ocw.show() >> sys.exit(app.exec_()) >> >> >
_______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt