[PyQt] need help with sizing QStackedWidgets

Eric Frederich eric.frederich at gmail.com
Fri Aug 23 21:02:56 BST 2013


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_())
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20130823/9cf46844/attachment.html>


More information about the PyQt mailing list