Hello World / plɹoM ollǝH

Programmers Live in Vain

QScrollAreaの罠にハマる

いつものようにLayoutにButtonを追加するが

一定サイズ以下に縮まないしスクロールバーも出ない

f:id:dungeonneko:20160209014920g:plain

# conding: utf-8
import sys
from PySide.QtCore import *
from PySide.QtGui import *

# entry point
if __name__ == '__main__':
    myapp = QApplication(sys.argv)
    widget = QScrollArea()
    widget.setWidgetResizable(True)

    # いつもの
    layout = QVBoxLayout(widget)
    widget.setLayout(layout)

    layout.addWidget(QPushButton('OK!'))
    layout.addWidget(QPushButton('OK!'))
    layout.addWidget(QPushButton('OK!'))
    layout.addWidget(QPushButton('OK!'))
    layout.addWidget(QPushButton('OK!'))
    layout.addWidget(QPushButton('OK!'))
    layout.addWidget(QPushButton('OK!'))
    layout.addWidget(QPushButton('OK!'))

    widget.show()
    sys.exit(myapp.exec_())

Widgetを一つはさむと何故か想定どおりに動く

f:id:dungeonneko:20160209014222g:plain

    # 内側にWidgetを1つ作ってあげる
    inner = QWidget()
    layout = QVBoxLayout(inner)
    inner.setLayout(layout)
    widget.setWidget(inner)