QLayoutItem Class

QLayoutItemクラスは、QLayout詳細...

ヘッダー #include <QLayoutItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
によって継承されています:

QLayout,QSpacerItem, およびQWidgetItem

パブリック関数

QLayoutItem(Qt::Alignment alignment = Qt::Alignment())
virtual ~QLayoutItem()
Qt::Alignment alignment() const
virtual QSizePolicy::ControlTypes controlTypes() const
virtual Qt::Orientations expandingDirections() const = 0
virtual QRect geometry() const = 0
virtual bool hasHeightForWidth() const
virtual int heightForWidth(int) const
virtual void invalidate()
virtual bool isEmpty() const = 0
virtual QLayout *layout()
virtual QSize maximumSize() const = 0
virtual int minimumHeightForWidth(int w) const
virtual QSize minimumSize() const = 0
void setAlignment(Qt::Alignment alignment)
virtual void setGeometry(const QRect &r) = 0
virtual QSize sizeHint() const = 0
virtual QSpacerItem *spacerItem()
virtual QWidget *widget() const

詳細な説明

カスタムレイアウトで使用されます。

sizeHint ()、minimumSize ()、maximumSize ()、expandingDirections ()など、レイアウトに関する情報を返すための純粋な仮想関数が用意されています。

レイアウトのジオメトリはsetGeometry() とgeometry() で設定・取得でき、アライメントはsetAlignment() とalignment() で設定・取得できます。

isEmpty() は、レイアウト項目が空であるかどうかを返します。具象項目がQWidget の場合、widget()で取得できる。layout() とspacerItem() についても同様です。

レイアウトによっては、幅と高さの相互依存性があります。これらは、hasHeightForWidth()、heightForWidth()、minimumHeightForWidth() を使って表現できます。詳しくはQt Quarterlyの Trading Height for Widthを参照してください。

QLayoutも参照して ください。

メンバ関数のドキュメント

[explicit] QLayoutItem::QLayoutItem(Qt::Alignment alignment = Qt::Alignment())

alignment を持つレイアウト項目を構築します。 すべてのサブクラスがアライメントをサポートしているわけではありません。

[virtual noexcept] QLayoutItem::~QLayoutItem()

QLayoutItem を破壊する。

Qt::Alignment QLayoutItem::alignment() const

この項目のアライメントを返します。

setAlignment()も参照

[virtual] QSizePolicy::ControlTypes QLayoutItem::controlTypes() const

レイアウト項目のコントロールタイプを返します。QWidgetItem の場合、コントロール・タイプはウィジェットのサイズ・ポリシーに由来します。QLayoutItem の場合、コントロール・タイプはレイアウトのコンテンツに由来します。

QSizePolicy::controlType()も参照してください

[pure virtual] Qt::Orientations QLayoutItem::expandingDirections() const

このレイアウトアイテムがsizeHint() より多くのスペースを使用できるかどうかを返します。値がQt::Vertical またはQt::Horizontal の場合は、1 次元だけ大きくしたいことを意味し、Qt::Vertical |Qt::Horizontal の場合は、2 次元とも大きくしたいことを意味します。

[pure virtual] QRect QLayoutItem::geometry() const

このレイアウト項目がカバーする矩形を返します。

setGeometry()も参照してください

[virtual] bool QLayoutItem::hasHeightForWidth() const

このレイアウトの好ましい高さが幅に依存する場合はtrue を返し、そうでない場合はfalse を返します。デフォルトの実装はfalseを返します。

widthに対するheightをサポートするレイアウトマネージャでは、この関数を再実装してください。

heightForWidth() およびQWidget::heightForWidth()も参照して ください。

[virtual] int QLayoutItem::heightForWidth(int) const

このデフォルトの実装では使用されていない width を指定して、このレイアウトアイテムの好ましい高さを返します。

デフォルトの実装は -1 を返し、好ましい高さがアイテムの幅に依存しないことを示します。この関数を呼び出して -1 をテストするよりも、関数hasHeightForWidth() を使用する方がはるかに高速です。

幅の高さをサポートするレイアウトマネージャーでは、この関数を再実装してください。典型的な実装は次のようになります:

int MyLayout::heightForWidth(int w) const
{
    if (cache_dirty || cached_width != w) {
        MyLayout *that = const_cast<MyLayout *>(this);
        int h = calculateHeightForWidth(w);
        that->cached_hfw = h;
        return h;
    }
    return cached_hfw;
}

キャッシュすることを強く推奨します。キャッシュしないと、レイアウトに指数関数的な時間がかかります。

hasHeightForWidth()も参照してください

[virtual] void QLayoutItem::invalidate()

このレイアウト項目にキャッシュされた情報を無効にします。

[pure virtual] bool QLayoutItem::isEmpty() const

このアイテムが空であるかどうか、つまりウィジェットを含んでいるかどうかを返すためにサブクラスで実装されています。

[virtual] QLayout *QLayoutItem::layout()

この項目がQLayout であれば、それはQLayout として返される。そうでなければnullptr が返される。この関数は型安全なキャストを提供する。

spacerItem() およびwidget()も参照

[pure virtual] QSize QLayoutItem::maximumSize() const

このアイテムの最大サイズを返すためにサブクラスで実装されています。

[virtual] int QLayoutItem::minimumHeightForWidth(int w) const

このウィジェットが、与えられた幅w に対して必要とする最小の高さを返します。デフォルトの実装では、単にheightForWidth(w) を返します。

[pure virtual] QSize QLayoutItem::minimumSize() const

このアイテムの最小サイズを返すためにサブクラスで実装されています。

void QLayoutItem::setAlignment(Qt::Alignment alignment)

このアイテムのアライメントをalignment に設定します。

注意:アイテムの整列は、QLayoutItem のサブクラスで、視覚的な効果がある場合にのみサポートされます。レイアウトのための空白を提供するQSpacerItem を除いて、QLayoutItem を継承するすべてのパブリック Qt クラスは、アイテムのアライメントをサポートしています。

alignment()も参照してください

[pure virtual] void QLayoutItem::setGeometry(const QRect &r)

このアイテムのジオメトリをr に設定するためにサブクラスで実装されています。

geometry()も参照してください

[pure virtual] QSize QLayoutItem::sizeHint() const

このアイテムの優先サイズを返すためにサブクラスで実装されています。

[virtual] QSpacerItem *QLayoutItem::spacerItem()

この項目がQSpacerItem の場合、QSpacerItem として返される。そうでない場合、nullptr が返される。この関数は型安全なキャストを提供する。

layout() およびwidget()も参照

[virtual] QWidget *QLayoutItem::widget() const

この項目がQWidget を管理している場合、そのウィジェットを返す。そうでない場合は、nullptr が返されます。

注意: 関数layout() とspacerItem() はキャストを行いますが、この関数は別のオブジェクトを返します。QLayoutQSpacerItemQLayoutItem を継承しますが、QWidget は継承しません。

layout() およびspacerItem()も参照

© 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.