添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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
ウィジェット のサイズをできるだけ大きくなるようにします.

サンプルコード

#! /usr/bin/python3
# -*- coding: utf-8 -*-
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() # ストレッチを2対3にセット 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_())