QLayoutItem Class
QLayoutItem クラスは、QLayout が操作する抽象アイテムを提供します。詳細...
| ヘッダー: | #include <QLayoutItem> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 継承元: |
パブリック関数
| 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 という値は、両方の次元で拡大を希望していることを意味します。
[pure virtual] QRect QLayoutItem::geometry() const
このレイアウト項目が占める矩形を返します。
setGeometry()も参照してください 。
[virtual] bool QLayoutItem::hasHeightForWidth() const
このレイアウトの推奨高さが幅に依存する場合は `true ` を返し、そうでない場合は `false` を返します。デフォルトの実装では `false` を返します。
幅に応じた高さをサポートするレイアウトマネージャでは、この関数を再実装してください。
heightForWidth() およびQWidget::heightForWidth()も参照してください 。
[virtual] int QLayoutItem::heightForWidth(int) const
このレイアウト項目の幅に基づいて、推奨される高さを返します。ただし、このデフォルトの実装ではこの幅は使用されません。
デフォルトの実装では -1 が返され、これは推奨高さが項目の幅に依存しないことを示しています。hasHeightForWidth() 関数を使用する方が、通常、この関数を呼び出して -1 であるかどうかを判定するよりもはるかに高速です。
幅に応じた高さをサポートするレイアウトマネージャでは、この関数を再実装してください。典型的な実装は次のようになります:
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() 関数は型変換を行いますが、 この関数は別のオブジェクトを返します。QLayout およびQSpacerItem はQLayoutItem を継承していますが、QWidget は継承していません。
layout() およびspacerItem()も参照してください 。
© 2026 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.