QBoxLayout Class
QBoxLayout クラスは、子ウィジェットを水平または垂直に並べます。詳細...
Header: | #include <QBoxLayout> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Inherits: | QLayout |
Inherited By: |
パブリック・タイプ
enum | Direction { LeftToRight, RightToLeft, TopToBottom, BottomToTop } |
パブリック関数
QBoxLayout(QBoxLayout::Direction dir, QWidget *parent = nullptr) | |
virtual | ~QBoxLayout() |
void | addLayout(QLayout *layout, int stretch = 0) |
void | addSpacerItem(QSpacerItem *spacerItem) |
void | addSpacing(int size) |
void | addStretch(int stretch = 0) |
void | addStrut(int size) |
void | addWidget(QWidget *widget, int stretch = 0, Qt::Alignment alignment = Qt::Alignment()) |
QBoxLayout::Direction | direction() const |
void | insertItem(int index, QLayoutItem *item) |
void | insertLayout(int index, QLayout *layout, int stretch = 0) |
void | insertSpacerItem(int index, QSpacerItem *spacerItem) |
void | insertSpacing(int index, int size) |
void | insertStretch(int index, int stretch = 0) |
void | insertWidget(int index, QWidget *widget, int stretch = 0, Qt::Alignment alignment = Qt::Alignment()) |
void | setDirection(QBoxLayout::Direction direction) |
void | setStretch(int index, int stretch) |
bool | setStretchFactor(QWidget *widget, int stretch) |
bool | setStretchFactor(QLayout *layout, int stretch) |
int | stretch(int index) const |
再実装パブリック関数
virtual void | addItem(QLayoutItem *item) override |
virtual int | count() const override |
virtual Qt::Orientations | expandingDirections() const override |
virtual bool | hasHeightForWidth() const override |
virtual int | heightForWidth(int w) const override |
virtual void | invalidate() override |
virtual QLayoutItem * | itemAt(int index) const override |
virtual QSize | maximumSize() const override |
virtual int | minimumHeightForWidth(int w) const override |
virtual QSize | minimumSize() const override |
virtual void | setGeometry(const QRect &r) override |
virtual void | setSpacing(int spacing) override |
virtual QSize | sizeHint() const override |
virtual int | spacing() const override |
virtual QLayoutItem * | takeAt(int index) override |
詳細説明
QBoxLayout は、(親レイアウトまたはparentWidget() から)取得したスペースをボックスの列に分割し、各管理対象ウィジェットを 1 つのボックスいっぱいに配置します。
QBoxLayout の向きがQt::Horizontal の場合、ボックスは適切なサイズで一列に配置されます。各ウィジェット(または他のボックス)は、少なくともその最小サイズ、最大サイズを取得します。余分なスペースはストレッチ係数に従って共有されます(詳細は後述します)。
QBoxLayout の Orientation がQt::Vertical の場合、ボックスは適切なサイズで列に配置されます。
QBoxLayout を作成する最も簡単な方法は、QHBoxLayout (Qt::Horizontal ボックス用)やQVBoxLayout (Qt::Vertical ボックス用)など、便利なクラスのいずれかを使用することです。QBoxLayout コンストラクタを直接使用して、その方向をLeftToRight 、RightToLeft 、TopToBottom 、BottomToTop のように指定することもできます。
QBoxLayout がトップ・レベルのレイアウトでない場合(つまり、ウィジェットのすべての領域と子を管理していない場合)、QBoxLayout で何かを行う前に、そのレイアウトを親レイアウトに追加する必要があります。レイアウトを追加する通常の方法は、parentLayout->addLayout()を呼び出すことです。
これを行うと、4つの関数のいずれかを使用してQBoxLayoutにボックスを追加できます:
- addWidget() を使用してQBoxLayoutにウィジェットを追加し、ウィジェットのストレッチ・ファクターを設定します。() を使用して、QBoxLayout にボックスを追加します。
- addSpacing() で空のボックスを作成します。これは、美しく広々としたダイアログを作成するために使用する関数の1つです。マージンを設定する方法については以下を参照してください。
- addStretch() で、伸縮可能な空のボックスを作成します。
- addLayout() で、別のQLayout を含むボックスを行に追加し、そのレイアウトの伸縮率を設定します。
insertWidget()、insertSpacing()、insertStretch()、insertLayout() を使用して、レイアウトの指定位置にボックスを挿入します。
QBoxLayoutには、2つのマージン幅もあります:
- setContentsMargins() は、ウィジェットの各辺の外枠の幅を設定します。これは、QBoxLayout の 4 つの側面に沿って確保されたスペースの幅です。
- setSpacing() は、隣り合うボックス間の幅を設定します。(addSpacing()を使用して、特定の場所でより多くのスペースを得ることができます)。
marginのデフォルトはスタイルによって指定されます。ほとんどの Qt スタイルが指定するデフォルトのマージンは、子ウィジェットでは 9、ウィンドウでは 11 です。スペーシングのデフォルトは、トップレベルレイアウトのマージン幅と同じか、親レイアウトと同じです。
レイアウトからウィジェットを削除するには、removeWidget ()を呼び出します。ウィジェットでQWidget::hide ()を呼び出すと、QWidget::show ()が呼び出されるまで、そのウィジェットはレイアウトから効果的に削除されます。
便利なコンストラクタがあるため、ほとんどの場合、QBoxLayout ではなくQVBoxLayout とQHBoxLayout を使用します。
QGridLayout 、QStackedLayout 、およびLayout Managementも参照してください 。
メンバ型ドキュメント
enum QBoxLayout::Direction
この型は、ボックス・レイアウトの方向を決定するために使用されます。
定数 | 値 | 説明 |
---|---|---|
QBoxLayout::LeftToRight | 0 | 左から右への水平 |
QBoxLayout::RightToLeft | 1 | 右から左への水平 |
QBoxLayout::TopToBottom | 2 | 上から下への垂直 |
QBoxLayout::BottomToTop | 3 | 下から上への垂直 |
メンバ関数 ドキュメント
[explicit]
QBoxLayout::QBoxLayout(QBoxLayout::Direction dir, QWidget *parent = nullptr)
方向dir と親ウィジェットparent を持つ新しい QBoxLayout を構築します。
このレイアウトは、parent のトップレベル レイアウトとして直接設定されます。ウィジェットのトップレベル レイアウトは 1 つだけです。それはQWidget::layout() によって返されます。
direction() およびQWidget::setLayout()も参照してください 。
[virtual noexcept]
QBoxLayout::~QBoxLayout()
このボックス・レイアウトを破棄します。
レイアウトのウィジェットは破棄されません。
[override virtual]
void QBoxLayout::addItem(QLayoutItem *item)
再インプリメントです:QLayout::addItem(QLayoutItem *item)。
void QBoxLayout::addLayout(QLayout *layout, int stretch = 0)
ボックスの末尾にlayout をシリアルストレッチ係数stretch で追加します。
insertLayout(),addItem(),addWidget()も参照してください 。
void QBoxLayout::addSpacerItem(QSpacerItem *spacerItem)
このボックスレイアウトの最後にspacerItem を追加する。
addSpacing() およびaddStretch() も参照 。
void QBoxLayout::addSpacing(int size)
このボックスレイアウトの末尾に、サイズsize の伸縮不可能なスペース (QSpacerItem ) を追加します。QBoxLayout にはデフォルトのマージン とスペーシングが用意されています。こ の関数は、 スペース を追加 し ます。
insertSpacing ()、addItem ()、QSpacerItemも参照 。
void QBoxLayout::addStretch(int stretch = 0)
このボックスレイアウトの末尾に、最小サイズ 0、伸縮倍率stretch の伸縮可能なスペース (aQSpacerItem ) を追加 し ます。
insertStretch ()、addItem ()、QSpacerItemも参照 。
void QBoxLayout::addStrut(int size)
こ のボ ッ ク ス の垂直方向の寸法 (た と えば、 ボ ッ ク ス がLeftToRight の と き の高 さ ) を、 最小値size に制限 し ます。 その他の制約に よ っ て、 こ の制限が増加す る こ と も あ り ます。
addItem()も参照してください 。
void QBoxLayout::addWidget(QWidget *widget, int stretch = 0, Qt::Alignment alignment = Qt::Alignment())
こ のボ ッ ク ス レ イ ア ウ ト の末尾に、 伸縮倍率stretch と ア ラ イ メ ン トalignment を指定 し て、widget を追加 し ます。
ストレッチファクターはQBoxLayout のdirection でのみ適用され、このQBoxLayout 内の他のボックスやウィジェットに対する相対的なものです。ストレッチ・ファクターが高いウィジェットやボックスほど大きくなります。
ストレッチ・ファクターが 0 で、QBoxLayout 内に 0 より大きいストレッチ・ファクターを持つものがない場合、関係する各ウィジェットのQWidget:sizePolicy() に従ってスペースが分配されます。
アライメントはalignment で指定します。デフォルトのアライメントは 0 で、これはウィジェットがセル全体を埋めることを意味します。
insertWidget(),addItem(),addLayout(),addStretch(),addSpacing(),addStrut()も参照してください 。
[override virtual]
int QBoxLayout::count() const
再インプリメント:QLayout::count() const.
QBoxLayout::Direction QBoxLayout::direction() const
ボックスの方向を返します。addWidget() およびaddSpacing() はこの方向で動作します。stretch はこの方向に伸ばします。
setDirection()、QBoxLayout::Direction 、addWidget()、addSpacing()も参照してください 。
[override virtual]
Qt::Orientations QBoxLayout::expandingDirections() const
再インプリメント:QLayout::expandingDirections() const.
[override virtual]
bool QBoxLayout::hasHeightForWidth() const
再インプリメント:QLayoutItem::hasHeightForWidth() const.
[override virtual]
int QBoxLayout::heightForWidth(int w) const
再リプルメント: () const:QLayoutItem::heightForWidth(int) const.
void QBoxLayout::insertItem(int index, QLayoutItem *item)
このボックスレイアウトにitem をindex の位置に挿入します。index が負の場合、アイテムは最後に追加されます。
addItem()、insertWidget()、insertLayout()、insertStretch()、insertSpacing()も参照 。
void QBoxLayout::insertLayout(int index, QLayout *layout, int stretch = 0)
index の位置にlayout を挿入し、伸張倍率はstretch とする。index が負の場合、レイアウトは最後に追加されます。
layout はボックスレイアウトの子になります。
addLayout() およびinsertItem()も参照 。
void QBoxLayout::insertSpacerItem(int index, QSpacerItem *spacerItem)
spacerItem を位置index に、 最小サ イ ズ と 伸縮倍率をゼロに し て挿入 し ます。index が負の場合、スペースは最後に追加されます。
addSpacerItem()、insertStretch()、insertSpacing()も参照 。
void QBoxLayout::insertSpacing(int index, int size)
位置index に、サイズsize の伸張不可能な空間 (aQSpacerItem) を挿入する。index が負の と き は、 空白は末尾に追加 さ れます。
ボックスレイアウトにはデフォルトのマージン とスペーシングがあります。こ の関数は余白を追加 し ます。
addSpacing ()、insertItem ()、QSpacerItemも参照 。
void QBoxLayout::insertStretch(int index, int stretch = 0)
stretch伸縮可能な スペース (aQSpacerItem ) を位置index に挿入 し ます。index が負の場合、スペースは最後に追加されます。
addStretch(),insertItem(),QSpacerItemも参照。
void QBoxLayout::insertWidget(int index, QWidget *widget, int stretch = 0, Qt::Alignment alignment = Qt::Alignment())
index の位置にwidget を挿入し、ストレッチファクタstretch とアライメントalignment を指定します。index が負の場合、ウィジェットが最後に追加される。
ストレッチ・ファクターは、QBoxLayout のdirection 内にのみ適用され、このQBoxLayout 内の他のボックスやウィジェットに対する相対的なものです。ストレッチ・ファクターが高いウィジェットやボックスほど大きくなります。
ストレッチ・ファクターが 0 で、QBoxLayout 内に 0 より大きいストレッチ・ファクターを持つものがない場合、関係する各ウィジェットのQWidget:sizePolicy() に従ってスペースが分配されます。
アライメントはalignment で指定します。デフォルトのアライメントは 0 で、これはウィジェットがセル全体を埋めることを意味します。
addWidget() およびinsertItem()も参照してください 。
[override virtual]
void QBoxLayout::invalidate()
再インプリメント:QLayout::invalidate().
キャッシュされた情報をリセットします。
[override virtual]
QLayoutItem *QBoxLayout::itemAt(int index) const
再実装:QLayout::itemAt(int index) const.
[override virtual]
QSize QBoxLayout::maximumSize() const
再リプルメント: (int index) const:QLayout::maximumSize() const.
[override virtual]
int QBoxLayout::minimumHeightForWidth(int w) const
再リプルメント:QLayoutItem::minimumHeightForWidth(int w) const.
[override virtual]
QSize QBoxLayout::minimumSize() const
再リプルメント:QLayout::minimumSize() const.
void QBoxLayout::setDirection(QBoxLayout::Direction direction)
このレイアウトの方向をdirection に設定します。
direction()も参照してください 。
[override virtual]
void QBoxLayout::setGeometry(const QRect &r)
再実装:QLayout::setGeometry(const QRect &r)。
[override virtual]
void QBoxLayout::setSpacing(int spacing)
プロパティのアクセス関数を再実装します:QLayout::spacing 。
QLayout::setSpacing() を再実装します。spacing プロパティをspacing に設定します。
QLayout::setSpacing() およびspacing()も参照してください 。
void QBoxLayout::setStretch(int index, int stretch)
位置index におけるストレッチ係数をstretch に設定します。
stretch() も参照 。
bool QBoxLayout::setStretchFactor(QWidget *widget, int stretch)
widget の伸縮率をstretch に設定し、widget がこのレイアウト(子レイアウトを含まない)に存在する場合は true を返し、そうでない場合はfalse
を返します。
setAlignment()も参照して ください。
bool QBoxLayout::setStretchFactor(QLayout *layout, int stretch)
これはオーバーロードされた関数です。
レイアウトlayout のストレッチファクターをstretch に設定し、layout がこのレイアウト(子レイアウトを含まない)で見つかった場合はtrue
を返し、そうでない場合はfalse
を返します。
[override virtual]
QSize QBoxLayout::sizeHint() const
そうでない場合は を返します:QLayoutItem::sizeHint() const.
[override virtual]
int QBoxLayout::spacing() const
プロパティのアクセス関数を再インプリメントします:QLayout::spacing.
QLayout::spacing() を再定義します。spacing プロパティが有効な場合、その値が返されます。そうでない場合は、spacingプロパティの値が計算されて返されます。ウィジェットのレイアウト間隔はスタイルに依存するため、親がウィジェットの場合、レイアウトの(水平または垂直)間隔をスタイルに問い合わせます。そうでない場合、親はレイアウトであり、親レイアウトに spacing() を問い合わせます。
QLayout::spacing() およびsetSpacing()も参照して ください。
int QBoxLayout::stretch(int index) const
位置index における伸張率を返します。
setStretch()も参照して ください。
[override virtual]
QLayoutItem *QBoxLayout::takeAt(int index)
再インプリメント:QLayout::takeAt(int index) を参照してください。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。