QSizePolicy Class

QSizePolicyクラスは、水平方向と垂直方向のサイズ変更ポリシーを記述するレイアウト属性です。詳細...

Header: #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 演算子を提供します。

QSizeQWidget::sizeHint()、QWidget::sizePolicy 、およびQLayoutItem::sizeHint()も参照してください

メンバ型ドキュメント

enum QSizePolicy::ControlType
flags QSizePolicy::ControlTypes

この列挙型は、レイアウトの相互作用の観点から、異なるタイプのウィジェットを指定します:

定数説明
QSizePolicy::DefaultType0x00000001何も指定されていない場合のデフォルトのタイプ。
QSizePolicy::ButtonBox0x00000002QDialogButtonBox インスタンス。
QSizePolicy::CheckBox0x00000004QCheckBox インスタンス。
QSizePolicy::ComboBox0x00000008QComboBox インスタンス。
QSizePolicy::Frame0x00000010QFrame インスタンス。
QSizePolicy::GroupBox0x00000020QGroupBox インスタンス。
QSizePolicy::Label0x00000040QLabel インスタンス。
QSizePolicy::Line0x00000080QFrame::HLine またはQFrame::VLine を持つQFrame インスタンス。
QSizePolicy::LineEdit0x00000100QLineEdit インスタンス。
QSizePolicy::PushButton0x00000200QPushButton インスタンス。
QSizePolicy::RadioButton0x00000400QRadioButton インスタンス。
QSizePolicy::Slider0x00000800QAbstractSlider インスタンス。
QSizePolicy::SpinBox0x00001000QAbstractSpinBox インスタンス。
QSizePolicy::TabWidget0x00002000QTabWidget インスタンス。
QSizePolicy::ToolButton0x00004000QToolButton インスタンス。

ControlTypes型はQFlags<ControlType>のtypedefである。ControlType値のORの組み合わせを格納する。

setControlType() およびcontrolType()も参照のこと

enum QSizePolicy::Policy

この列挙型は、QSizePolicy を構築するときに使用される、さまざまな次元ごとのサイズ・タイプを記述します。

定数説明
QSizePolicy::Fixed0QWidget::sizeHint() は、唯一の許容可能な選択肢です。したがって、ウィジェットは決して大きくも小さくもできません(例えば、プッシュボタンの垂直方向)。
QSizePolicy::MinimumGrowFlagsizeHint()は最小限で十分です。ウィジェットは拡大できますが、大きくする利点はありません(例えば、プッシュボタンの水平方向)。sizeHint()で指定されたサイズより小さくすることはできません。
QSizePolicy::MaximumShrinkFlagsizeHint()は最大値です。他のウィジェットがスペースを必要とする場合(例えば、区切り線)、ウィジェットは損なわれることなくいくらでも縮小できます。sizeHint() で指定されたサイズより大きくすることはできません。
QSizePolicy::PreferredGrowFlag | ShrinkFlagsizeHint()がベストですが、ウィジェットは縮小しても有用です。ウィジェットは拡大できますが、sizeHint() よりも大きくする利点はありません(デフォルトのQWidget ポリシー)。
QSizePolicy::ExpandingGrowFlag | ShrinkFlag | ExpandFlagsizeHint()は常識的なサイズですが、ウィジェットは縮小しても有用です。ウィジェットは余分なスペースを利用できるので、可能な限り多くのスペースを確保する必要があります(例えば、水平スライダーの水平方向)。
QSizePolicy::MinimumExpandingGrowFlag | ExpandFlagsizeHint()は最小限で十分です。ウィジェットは余分なスペースを利用できるので、可能な限り多くのスペースを取得する必要があります(例えば、水平スライダーの水平方向)。
QSizePolicy::IgnoredShrinkFlag | GrowFlag | IgnoreFlagsizeHint()は無視されます。ウィジェットは可能な限りのスペースを取得します。

PolicyFlag,setHorizontalPolicy(),setVerticalPolicy()も参照してください

enum QSizePolicy::PolicyFlag

これらのフラグを組み合わせることで、さまざまなPolicy

定数説明
QSizePolicy::GrowFlag1ウィジェットは、必要に応じてサイズヒントを超えて成長することができます。
QSizePolicy::ExpandFlag2ウィジェットは可能な限り多くのスペースを確保する必要があります。
QSizePolicy::ShrinkFlag4ウィジェットは、必要に応じてサイズヒントより小さくすることができます。
QSizePolicy::IgnoreFlag8ウィジェットのサイズヒントは無視されます。ウィジェットは可能な限りのスペースを確保します。

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)

ウィジェットを非表示にしたときに、レイアウトがウィジェットのサイズを保持するかどうかを設定します。retainSizetrue の場合、ウィジェットを非表示にしてもレイアウトは変更されません。

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)

seed を計算のシードに使用して、key のハッシュ値を返します。

QDataStream &operator<<(QDataStream &stream, const QSizePolicy &policy)

データ・ストリームstream にサイズpolicy を書き込みます。

QDataStream 演算子の形式も参照してください

QDataStream &operator>>(QDataStream &stream, QSizePolicy &policy)

データ・ストリームstream からサイズpolicy を読み込みます。

QDataStream 演算子の書式」も参照して ください。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。