QLayoutItem Class

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

Header: #include <QLayoutItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherited By:

QLayout, QSpacerItem, and 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 の場合は、両方の次元で大きくしたいことを意味します。

[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 が返され、これは優先高さがアイテムの幅に依存しないことを示します。この関数を呼び出して -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()も参照してください

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