QSizePolicy.QSizePolicy(horizontalPolicy, verticalPolicy, type = DefaultType) -> QSizePolicy
horizontalPolicy, verticalPolicy:QSizePolicy.Policy型, 横方向,縦方向の自動伸縮
縦方向,横方向それぞれの自動伸縮は次のどれかを指定します.
QSizePolicy.Policy
QSizePolicy.Fixed
ウィジェット
のサイズがQWidget.sizeHint()に固定されます.
QSizePolicy.Minimum
ウィジェット
のサイズはsizeHint()以下になりません.
拡大はされます.
QSizePolicy.Maximum
ウィジェット
のサイズはsizeHint()以上になりません.
縮小はされます.
QSizePolicy.Preferred
基本sizeHint()のサイズになりますが,拡大も縮小もします.
QSizePolicy.Expanding
基本sizeHint()のサイズになりますが,拡大も縮小します.
また,拡大のときは特別な領域も使用して
できるだけ大きくなるようにします.
QSizePolicy.MinimumExpanding
sizeHint()以下になりません.
拡大のときはできるだけ大きくなるようにします.
QSizePolicy.Ignored
ウィジェット
のサイズをできるだけ大きくなるようにします.
サンプルコード
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QHBoxLayout,\
QSizePolicy
if __name__ == '__main__':
app = QApplication(sys.argv)
window = QWidget()
button1 = QPushButton('1')
button2 = QPushButton('2')
button1.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
button2.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Expanding)
layout = QHBoxLayout()
layout.addWidget(button1)
layout.addWidget(button2)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())
ボタン2は縦,横とも拡大します.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QHBoxLayout,\
QSizePolicy
if __name__ == '__main__':
app = QApplication(sys.argv)
window = QWidget()
button1 = QPushButton('1')
button2 = QPushButton('2')
sizePolicy1 = button1.sizePolicy()
sizePolicy2 = button2.sizePolicy()
sizePolicy1.setHorizontalStretch(2)
sizePolicy2.setHorizontalStretch(3)
button1.setSizePolicy(sizePolicy1)
button2.setSizePolicy(sizePolicy2)
layout = QHBoxLayout()
layout.addWidget(button1)
layout.addWidget(button2)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())