QSizePolicy Class
QSizePolicyクラスは、水平方向と垂直方向のサイズ変更ポリシーを記述するレイアウト属性です。詳細...
ヘッダー | #include <QSizePolicy> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
パブリックな型
enum | ControlType { DefaultType, ButtonBox, CheckBox, ComboBox, Frame, …, ToolButton } |
flags | ControlTypes |
enum | Policy { Fixed, Minimum, Maximum, Preferred, Expanding, …, Ignored } |
enum | PolicyFlag { GrowFlag, ExpandFlag, ShrinkFlag, IgnoreFlag } |
パブリック関数
QSizePolicy() | |
QSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical, QSizePolicy::ControlType type = DefaultType) | |
QSizePolicy::ControlType | controlType() const |
Qt::Orientations | expandingDirections() const |
bool | hasHeightForWidth() const |
bool | hasWidthForHeight() const |
QSizePolicy::Policy | horizontalPolicy() const |
int | horizontalStretch() const |
bool | retainSizeWhenHidden() const |
void | setControlType(QSizePolicy::ControlType type) |
void | setHeightForWidth(bool dependent) |
void | setHorizontalPolicy(QSizePolicy::Policy policy) |
void | setHorizontalStretch(int stretchFactor) |
void | setRetainSizeWhenHidden(bool retainSize) |
void | setVerticalPolicy(QSizePolicy::Policy policy) |
void | setVerticalStretch(int stretchFactor) |
void | setWidthForHeight(bool dependent) |
void | transpose() |
QSizePolicy | transposed() const |
QSizePolicy::Policy | verticalPolicy() const |
int | verticalStretch() const |
QVariant | operator QVariant() const |
bool | operator!=(const QSizePolicy &other) const |
bool | operator==(const QSizePolicy &other) const |
関連する非メンバー
size_t | qHash(QSizePolicy key, size_t seed = 0) |
QDataStream & | operator<<(QDataStream &stream, const QSizePolicy &policy) |
QDataStream & | operator>>(QDataStream &stream, QSizePolicy &policy) |
詳細な説明
ウィジェットのサイズポリシーは、様々な方法でサイズを変更する意思を表すもので、レイアウトエンジンによってウィジェットがどのように扱われるかに影響します。各ウィジェットは、レイアウトされるときに好む水平方向と垂直方向のサイズ変更ポリシーを記述する QSizePolicy を返します。QWidget::sizePolicy プロパティを変更することで、特定のウィジェットを変更できます。
QSizePolicy には、2 つの独立したQSizePolicy::Policy 値と 2 つの伸縮係数が含まれます。1 つはウィジェットの水平サイズポリシーを記述し、もう 1 つは垂直サイズポリシーを記述します。また、優先サイズの高さと幅が関連しているかどうかを示すフラグも含まれています。
水平および垂直ポリシーはコンストラクタで設定でき、setHorizontalPolicy() およびsetVerticalPolicy() 関数を使用して変更できます。伸張係数は、setHorizontalStretch() とsetVerticalStretch() 関数を使用して設定できる。ウィジェットのsizeHint() が幅依存であるかどうかを示すフラグは、setHeightForWidth() 関数を使用して設定することができます(メニュー・バーやワード・ラッピング・ラベルなど)。
horizontalPolicy(),verticalPolicy(),horizontalStretch(),verticalStretch() 関数を使用すると、現在のサイズ・ポリシーとストレッチ・ファクタを取得できます。また、transpose ()関数を使用して、水平方向と垂直方向の方針とストレッチを入れ替えます。hasHeightForWidth() 関数は、サイズ・ヒントの依存関係を示すフラグの現在のステータスを返します。
expandingDirections() 関数を使用して、関連するウィジェットがsizeHint() 関数が示すよりも多くのスペースを使用できるかどうかを判断し、どの方向に拡張できるかを調べます。
最後に、QSizePolicy クラスは、このサイズ ポリシーを指定されたポリシーと比較する演算子と、この QSizePolicy をQVariant オブジェクトとして格納するQVariant 演算子を提供します。
QSize 、QWidget::sizeHint()、QWidget::sizePolicy 、およびQLayoutItem::sizeHint()も参照してください 。
メンバ型ドキュメント
enum QSizePolicy::ControlType
flags QSizePolicy::ControlTypes
この列挙型は、レイアウトの相互作用の観点から、異なるタイプのウィジェットを指定します:
定数 | 値 | 説明 |
---|---|---|
QSizePolicy::DefaultType | 0x00000001 | 何も指定されていない場合のデフォルトのタイプ。 |
QSizePolicy::ButtonBox | 0x00000002 | QDialogButtonBox インスタンス。 |
QSizePolicy::CheckBox | 0x00000004 | QCheckBox インスタンス。 |
QSizePolicy::ComboBox | 0x00000008 | QComboBox インスタンス。 |
QSizePolicy::Frame | 0x00000010 | QFrame インスタンス。 |
QSizePolicy::GroupBox | 0x00000020 | QGroupBox インスタンス。 |
QSizePolicy::Label | 0x00000040 | QLabel インスタンス。 |
QSizePolicy::Line | 0x00000080 | QFrame::HLine またはQFrame::VLine を持つQFrame インスタンス。 |
QSizePolicy::LineEdit | 0x00000100 | QLineEdit インスタンス。 |
QSizePolicy::PushButton | 0x00000200 | QPushButton インスタンス。 |
QSizePolicy::RadioButton | 0x00000400 | QRadioButton インスタンス。 |
QSizePolicy::Slider | 0x00000800 | QAbstractSlider インスタンス。 |
QSizePolicy::SpinBox | 0x00001000 | QAbstractSpinBox インスタンス。 |
QSizePolicy::TabWidget | 0x00002000 | QTabWidget インスタンス。 |
QSizePolicy::ToolButton | 0x00004000 | QToolButton インスタンス。 |
ControlTypes型はQFlags<ControlType>のtypedefである。ControlType値のORの組み合わせを格納する。
setControlType() およびcontrolType()も参照の こと。
enum QSizePolicy::Policy
この列挙型は、QSizePolicy を構築する際に使用される、寸法ごとの様々なサイズタイプを記述します。
定数 | 値 | 説明 |
---|---|---|
QSizePolicy::Fixed | 0 | QWidget::sizeHint()は、唯一の許容可能な代替手段です。そのため、ウィジェットは決して大きくも小さくもできません(例えば、プッシュボタンの垂直方向)。 |
QSizePolicy::Minimum | GrowFlag | sizeHint()は最小限で十分です。ウィジェットは拡大できますが、大きくする利点はありません(例えば、プッシュボタンの水平方向)。sizeHint()で指定されたサイズより小さくすることはできません。 |
QSizePolicy::Maximum | ShrinkFlag | sizeHint()は最大値です。他のウィジェットがスペースを必要とする場合(例えば、区切り線)、ウィジェットは損なわれることなくいくらでも縮小できます。sizeHint() で指定されたサイズより大きくすることはできません。 |
QSizePolicy::Preferred | GrowFlag | ShrinkFlag | sizeHint()がベストですが、ウィジェットは縮小しても有用です。ウィジェットは拡大できますが、sizeHint() よりも大きくする利点はありません(デフォルトのQWidget ポリシー)。 |
QSizePolicy::Expanding | GrowFlag | ShrinkFlag | ExpandFlag | sizeHint()は常識的なサイズですが、ウィジェットは縮小しても有用です。ウィジェットは余分なスペースを利用できるので、可能な限り多くのスペースを確保する必要があります(例えば、水平スライダーの水平方向)。 |
QSizePolicy::MinimumExpanding | GrowFlag | ExpandFlag | sizeHint()は最小限で十分です。ウィジェットは余分なスペースを利用できるので、可能な限り多くのスペースを取得する必要があります(例えば、水平スライダーの水平方向)。 |
QSizePolicy::Ignored | ShrinkFlag | GrowFlag | IgnoreFlag | sizeHint()は無視されます。ウィジェットは可能な限りのスペースを取得します。 |
PolicyFlag,setHorizontalPolicy(),setVerticalPolicy()も参照してください 。
enum QSizePolicy::PolicyFlag
これらのフラグが組み合わされ、Policy :
定数 | 値 | 説明 |
---|---|---|
QSizePolicy::GrowFlag | 1 | ウィジェットは、必要に応じて、サイズヒントを超えて成長することができます。 |
QSizePolicy::ExpandFlag | 2 | ウィジェットは可能な限り多くのスペースを確保する必要があります。 |
QSizePolicy::ShrinkFlag | 4 | ウィジェットは、必要に応じてサイズヒントより小さくすることができます。 |
QSizePolicy::IgnoreFlag | 8 | ウィジェットのサイズヒントは無視されます。ウィジェットは可能な限りのスペースを確保します。 |
Policyも参照してください .
メンバ関数ドキュメント
[constexpr noexcept]
QSizePolicy::QSizePolicy()
QSizePolicy オブジェクトを、Fixed を水平方向と垂直方向のポリシーとして構築します。
ポリシーは、setHorizontalPolicy() とsetVerticalPolicy() 関数を使用して変更できます。ウィジェットの好ましい高さがウィジェットの幅に依存する場合(例えば、行の折り返しを持つQLabel )、setHeightForWidth ()関数を使用してください。
setHorizontalStretch() およびsetVerticalStretch()も参照 。
[constexpr noexcept]
QSizePolicy::QSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical, QSizePolicy::ControlType type = DefaultType)
指定されたhorizontal とvertical ポリシー、および指定されたコントロールtype を持つ QSizePolicy オブジェクトを構築します。
ウィジェットの好ましい高さがウィジェットの幅に依存する場合(例えば、行の折り返しを持つQLabel )は、setHeightForWidth() を使用してください。
setHorizontalStretch()、setVerticalStretch()、controlType()も参照 。
[noexcept]
QSizePolicy::ControlType QSizePolicy::controlType() const
このサイズポリシーが適用されるウィジェットに関連付けられたコントロールタイプを返します。
setControlType()も参照してください 。
[constexpr noexcept]
Qt::Orientations QSizePolicy::expandingDirections() const
ウィジェットがQWidget::sizeHint() 関数が示す以上のスペースを利用できるかどうかを返す。
Qt::Horizontal またはQt::Vertical の値は、ウィジェットが水平または垂直に成長できることを意味し (すなわち、水平または垂直ポリシーはExpanding またはMinimumExpanding)、Qt::Horizontal |Qt::Vertical は、両方の次元で成長できることを意味します。
horizontalPolicy() とverticalPolicy()も参照してください 。
[constexpr noexcept]
bool QSizePolicy::hasHeightForWidth() const
ウィジェットの好ましい高さがその幅に依存する場合はtrue
を返し、そうでない場合はfalse
を返します。
setHeightForWidth()も参照してください 。
[constexpr noexcept]
bool QSizePolicy::hasWidthForHeight() const
ウィジェットの幅が高さに依存する場合はtrue
を返し、そうでない場合はfalse
を返します。
setWidthForHeight()も参照してください 。
[constexpr noexcept]
QSizePolicy::Policy QSizePolicy::horizontalPolicy() const
サイズポリシーの水平成分を返します。
setHorizontalPolicy()、verticalPolicy() およびhorizontalStretch()も参照 。
[constexpr noexcept]
int QSizePolicy::horizontalStretch() const
サイズ・ポリシーの水平ストレッチ係数を返します。
setHorizontalStretch()、verticalStretch() およびhorizontalPolicy()も参照 。
[constexpr noexcept]
bool QSizePolicy::retainSizeWhenHidden() const
ウィジェットが非表示のとき、レイアウトがウィジェットのサイズを保持するかどうかを返します。デフォルトはfalse
です。
setRetainSizeWhenHidden()も参照してください 。
[noexcept]
void QSizePolicy::setControlType(QSizePolicy::ControlType type)
このサイズポリシーが適用されるウィジェットに関連付けられたコントロールタイプをtype に設定する。
コントロール タイプは、このサイズ ポリシーが適用されるウィジェットのタイプを指定します。これは、いくつかのスタイル、特に QMacStyle によって、ウィジェット間に適切な間隔を挿入するために使用されます。例えば、macOS Aqua ガイドラインでは、プッシュボタンは 12 ピクセルの間隔が必要ですが、縦に重ねたラジオボタンは 6 ピクセルの間隔が必要です。
controlType() とQStyle::layoutSpacing()も参照してください 。
[constexpr noexcept]
void QSizePolicy::setHeightForWidth(bool dependent)
ウィジェットの好ましい高さがその幅に依存するかどうかを決定するフラグをdependent に設定します。
hasHeightForWidth() およびsetWidthForHeight()も参照 。
[constexpr noexcept]
void QSizePolicy::setHorizontalPolicy(QSizePolicy::Policy policy)
水平コンポーネントを指定されたpolicy に設定する。
horizontalPolicy(),setVerticalPolicy(),setHorizontalStretch()も参照 。
[constexpr]
void QSizePolicy::setHorizontalStretch(int stretchFactor)
サイズポリシーの水平ストレッチファクタを与えられたstretchFactor に設定します。stretchFactor は [0,255] の範囲でなければなりません。
水平レイアウトで 2 つのウィジェットが隣接している場合、左側のウィジェットの水平ストレッチ係数を 2 に設定し、右側のウィジェットの水平ストレッチ係数を 1 に設定すると、左側のウィジェットは常に右側のウィジェットの 2 倍のサイズになります。
horizontalStretch(),setVerticalStretch(),setHorizontalPolicy()も参照 。
[constexpr noexcept]
void QSizePolicy::setRetainSizeWhenHidden(bool retainSize)
ウィジェットを非表示にしたときに、レイアウトがウィジェットのサイズを保持するかどうかを設定します。retainSize がtrue
の場合、ウィジェットを非表示にしてもレイアウトは変更されません。
retainSizeWhenHidden()も参照してください 。
[constexpr noexcept]
void QSizePolicy::setVerticalPolicy(QSizePolicy::Policy policy)
与えられたpolicy に垂直成分を設定する。
verticalPolicy(),setHorizontalPolicy(),setVerticalStretch()も参照 。
[constexpr]
void QSizePolicy::setVerticalStretch(int stretchFactor)
サイズポリシーの垂直ストレッチファクタを与えられたstretchFactor に設定します。stretchFactor は [0,255] の範囲でなければなりません。
垂直レイアウトで 2 つのウィジェットが隣接している場合、上側のウィジェットの垂直方向の伸縮率を 2 に設定し、下側のウィジェットの伸縮率を 1 に設定すると、上側のウィジェットは常に下側のウィジェットの 2 倍のサイズになります。
verticalStretch(),setHorizontalStretch(),setVerticalPolicy()も参照してください 。
[constexpr noexcept]
void QSizePolicy::setWidthForHeight(bool dependent)
ウィジェットの幅が高さに依存するかどうかを決定するフラグをdependent に設定します。
これはQGraphicsLayout のサブクラスでのみサポートされます。height-for-width 制約と width-for-height 制約の両方を同時に持つレイアウトを持つことはできません。
hasWidthForHeight() およびsetHeightForWidth()も参照してください 。
[constexpr noexcept]
void QSizePolicy::transpose()
水平方向と垂直方向のポリシーを入れ替え、ストレッチする。
transposed()も参照 。
[constexpr noexcept]
QSizePolicy QSizePolicy::transposed() const
水平方向と垂直方向のポリシーとストレッチを入れ替えたサイズポリシーオブジェクトを返します。
transpose()も参照してください 。
[constexpr noexcept]
QSizePolicy::Policy QSizePolicy::verticalPolicy() const
サイズポリシーの垂直成分を返します。
setVerticalPolicy()、horizontalPolicy() およびverticalStretch()も参照 。
[constexpr noexcept]
int QSizePolicy::verticalStretch() const
サイズポリシーの垂直方向の伸縮率を返します。
setVerticalStretch()、horizontalStretch() およびverticalPolicy()も参照 。
QVariant QSizePolicy::operator QVariant() const
このQSizePolicy を格納したQVariant を返します。
[constexpr noexcept]
bool QSizePolicy::operator!=(const QSizePolicy &other) const
このポリシーがother と異なる場合はtrue
を返し、そうでない場合はfalse
を返す。
operator==()も参照 。
[constexpr noexcept]
bool QSizePolicy::operator==(const QSizePolicy &other) const
このポリシーがother と等しい場合はtrue
を返し、そうでない場合はfalse
を返す。
operator!=()も参照 。
関連する非会員
[noexcept]
size_t qHash(QSizePolicy key, size_t seed = 0)
key のハッシュ値を返す。計算のシードにはseed を使用する。
QDataStream &operator<<(QDataStream &stream, const QSizePolicy &policy)
サイズpolicy をデータ・ストリームstream に書き込みます。
QDataStream 演算子のフォーマットも参照してください 。
QDataStream &operator>>(QDataStream &stream, QSizePolicy &policy)
データ・ストリームstream からサイズpolicy を読み込みます。
QDataStream 演算子のフォーマットも参照してください 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.