<div dir="ltr"><div><div><div><div>Replying to self with a solution in case someone else comes across this problem.<br></div>david_boddie on freenode's #pyqt channel helped me out.<br><br></div>A solution was to call....<br>
    layout.setRowStretch(len(labels), 1)<br></div>... after adding the spacer.<br><br></div>Another solution was to nest the grid layout into a BoxLayout and call addStretch.<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Mon, Aug 26, 2013 at 9:36 AM, Eric Frederich <span dir="ltr"><<a href="mailto:eric.frederich@gmail.com" target="_blank">eric.frederich@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div>Would appreciate some help here.<br></div>I don't like how these stacked widgets take up all of this vertical space when the window is resized.<br>I have tried setting a size policy to minimum on the stacked widgets but no luck.<br>

</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 23, 2013 at 4:02 PM, Eric Frederich <span dir="ltr"><<a href="mailto:eric.frederich@gmail.com" target="_blank">eric.frederich@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Here is a small example.<br>I tried putting a vertical spacer on the bottom yet these stacked widgets want to take up space when resized.<br>

<br>#!/usr/bin/env python<br><br>from PyQt4.QtCore import *<br>from PyQt4.QtGui import *<br>
<br>class TestWidget(QWidget):<br>    def __init__(self, labels, parent=None):<br>        super(TestWidget, self).__init__(parent)<br><br>        layout = QGridLayout()<br>        for i, output in enumerate(labels):<br><br>


            layout.addWidget(QLabel(output), i, 0)<br>            combo = QComboBox()<br>            combo.addItems([<br>                "Slider",<br>                "Spinner",<br>            ])<br>            layout.addWidget(combo, i, 1)<br>


<br>            stack = QStackedWidget()<br><br>            horizontalSlider = QSlider()<br>            horizontalSlider.setOrientation(Qt.Horizontal)<br><br>            spinner = QSpinBox()<br><br>            spinner.valueChanged.connect(horizontalSlider.setValue)<br>


            horizontalSlider.valueChanged.connect(spinner.setValue)<br><br>            stack.addWidget(horizontalSlider)<br>            stack.addWidget(spinner)<br><br>            combo.currentIndexChanged.connect(stack.setCurrentIndex)<br>


<br>            layout.addWidget(stack, i, 2)<br><br>        vertical_spacer = QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding)<br>        layout.addItem(vertical_spacer, len(labels), 0, 1, 3)<br><br>        self.setLayout(layout)<br>


<br>if __name__ == '__main__':<br>    import sys<br>    app = QApplication(sys.argv)<br>    ocw = TestWidget(['a', 'b', 'c', 'd', 'e'])<br>    ocw.show()<br>    sys.exit(app.exec_())<br>


<br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>