QGraphicsLayoutItem Class

QGraphicsLayoutItemクラスを継承することで、カスタムアイテムをレイアウトで管理できるようになります。詳細...

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

QGraphicsLayout そしてQGraphicsWidget

パブリック関数

QGraphicsLayoutItem(QGraphicsLayoutItem *parent = nullptr, bool isLayout = false)
virtual ~QGraphicsLayoutItem()
QRectF contentsRect() const
QSizeF effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const
QRectF geometry() const
virtual void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const
QGraphicsItem *graphicsItem() const
(since 6.0) virtual bool isEmpty() const
bool isLayout() const
qreal maximumHeight() const
QSizeF maximumSize() const
qreal maximumWidth() const
qreal minimumHeight() const
QSizeF minimumSize() const
qreal minimumWidth() const
bool ownedByLayout() const
QGraphicsLayoutItem *parentLayoutItem() const
qreal preferredHeight() const
QSizeF preferredSize() const
qreal preferredWidth() const
virtual void setGeometry(const QRectF &rect)
void setMaximumHeight(qreal height)
void setMaximumSize(const QSizeF &size)
void setMaximumSize(qreal w, qreal h)
void setMaximumWidth(qreal width)
void setMinimumHeight(qreal height)
void setMinimumSize(const QSizeF &size)
void setMinimumSize(qreal w, qreal h)
void setMinimumWidth(qreal width)
void setParentLayoutItem(QGraphicsLayoutItem *parent)
void setPreferredHeight(qreal height)
void setPreferredSize(const QSizeF &size)
void setPreferredSize(qreal w, qreal h)
void setPreferredWidth(qreal width)
void setSizePolicy(const QSizePolicy &policy)
void setSizePolicy(QSizePolicy::Policy hPolicy, QSizePolicy::Policy vPolicy, QSizePolicy::ControlType controlType = QSizePolicy::DefaultType)
QSizePolicy sizePolicy() const
virtual void updateGeometry()

保護された関数

void setGraphicsItem(QGraphicsItem *item)
void setOwnedByLayout(bool ownership)
virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const = 0

詳細説明

QGraphicsLayoutItem は、QGraphicsLayout によって配置されたオブジェクトのサイズ、サイズポリシー、サイズヒントを記述する一連の仮想関数を定義する抽象クラスです。QGraphicsLayoutItem の関数のほとんどは、サブクラスのパブリック API の一部でもあるため、この API には、アイテム自体とアイテムのユーザーの両方に関連する関数が含まれています。

ほとんどの場合、QGraphicsWidgetQGraphicsLayout などの既存のレイアウト対応クラスが、必要な機能をすでに提供しています。しかし、これらのクラスをサブクラス化することで、レイアウトと連動するグラフィカル・エレメント (QGraphicsWidget) やカスタムレイアウト (QGraphicsLayout) の両方を作成できるようになります。

QGraphicsLayoutItem のサブクラス化

QGraphicsLayoutItem のサブクラスを作成し、その仮想関数を再実装すれ ば、QGraphicsWidgetQGraphicsLayout を含む他の QGraphicsLayoutItem と同様に、アイテムのリサイ ズや配置をレイアウトで行うことができます。

protectedsizeHint ()関数とpublicsetGeometry ()関数です。アイテムにジオメトリの変更を即座に認識させたい場合は、updateGeometry() を再実装することもできます。

ジオメトリ、サイズヒント、およびサイズポリシーは、アイテムのサイズと位置に影響します。setGeometry() を呼び出すと、常にアイテムのサイズと位置が即座に変更されます。通常、この関数はレイアウトがアクティブになった後にQGraphicsLayout から呼び出されますが、アイテムのユーザがいつでも呼び出すこともできます。

sizeHint() 関数は、アイテムの最小サイズ、優先サイズ、最大サイズのヒントを返します。これらのプロパティをオーバーライドするには、setMinimumSize()、setPreferredSize()、setMaximumSize() を呼び出します。また、setMinimumWidth() やsetMaximumHeight() などの関数を使用して、幅や高さの要素のみを設定することもできます。

一方、effectiveSizeHint ()関数は、任意の与えられたQt::SizeHint 、サイズヒントを返し、返されたサイズが最小・最大サイズとサイズヒントに束縛されていることを保証します。setSizePolicy() を呼び出すことで、アイテムの縦方向と横方向のサイズ・ポリシーを設定できます。sizePolicy プロパティは、このアイテムがどのように拡大または縮小を好むかを記述するためにレイアウトシステムによって使用されます。

QGraphicsLayoutItems の入れ子

QGraphicsLayoutItems は、サブレイアウトを含むことができるレイアウトと同様に、他の QGraphicsLayoutItems の中に入れ子にすることができます。これは、QGraphicsLayoutItemのプロテクトされたコンストラクタにQGraphicsLayoutItemポインタを渡すか、setParentLayoutItem ()を呼び出すことによって行われます。parentLayoutItem() 関数は、アイテムの layoutItem 親へのポインタを返します。アイテムの親がnullptr である場合、または親がQGraphicsItem を継承していない場合、parentLayoutItem() 関数はnullptr を返します。isLayout() は、QGraphicsLayoutItem のサブクラス自体がレイアウトである場合はtrue を返し、そうでない場合は false を返します。

Qt は QGraphicsLayoutItem を使って、グラフィックス・ビュー・フレームワークでレイアウト機能を提供していますが、将来的には Qt 自身にその使用が広がるかもしれません。

QGraphicsWidgetQGraphicsLayoutQGraphicsLinearLayoutQGraphicsGridLayoutも参照してください

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

QGraphicsLayoutItem::QGraphicsLayoutItem(QGraphicsLayoutItem *parent = nullptr, bool isLayout = false)

QGraphicsLayoutItem オブジェクトを構築します。parent がオブジェクトの親になります。isLayout が真の場合、アイテムはレイアウトです。そうでない場合、isLayout は偽です。

[virtual noexcept] QGraphicsLayoutItem::~QGraphicsLayoutItem()

QGraphicsLayoutItem オブジェクトを破棄する。

QRectF QGraphicsLayoutItem::contentsRect() const

contents rect をローカル座標で返します。

contents rect は、関連レイアウトがサブアイテムを配置する際に使用するサブ矩形を定義します。この関数は、アイテムのgeometry() をコンテンツマージンで調整する便利な関数です。getContentsMargins() は、アイテムの内容マージンを返すために再実装できる仮想関数であることに注意してください。

getContentsMargins() およびgeometry()も参照して ください。

QSizeF QGraphicsLayoutItem::effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const

このQGraphicsLayoutItem の有効サイズヒントを返す。

which constraint はオプションの引数で、有効サイズヒントを計算する際の特別な制約を定義する。デフォルトでは、 は (-1, -1)で、これはサイズヒントに制約がないことを意味します。constraint QSizeF

指定された幅または高さに対してウィジェットのサイズヒントを指定したい場合、constraint に固定寸法を指定することができます。これは、縦か横のどちらかにしか成長できず、幅か高さのどちらかを特別な値に設定する必要があるウィジェットに便利です。

例えば、200の列幅に収まるテキスト段落項目は、縦方向に成長するかもしれません。QSizeF(200, -1) を制約として渡すと、適切な最小、優先、最大の高さを得ることができます)。

QGraphicsLayoutItem のサブクラスでsizeHint() を再実装するか、setMinimumSize()、setPreferredSizesetMaximumSize() のいずれか(または両方の組み合わせ)を呼び出すことで、有効サイズのヒントを調整できます。

この関数は、各サイズ・ヒントをキャッシュし、constraint が指定されておらず、updateGeometry() が呼び出されていない限り、which の各値に対してsizeHint() が 1 回だけ呼び出されることを保証します。

sizeHint()も参照

QRectF QGraphicsLayoutItem::geometry() const

アイテムのジオメトリ(位置やサイズなど)をQRectF として返す。 この関数はQRectF(pos(), size()) と等価である。

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

[virtual] void QGraphicsLayoutItem::getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const

この仮想関数は、このQGraphicsLayoutItemlefttoprightbottom の内容マージンを提供する。デフォルトの実装では、すべてのコンテンツマージンは0であると仮定されています。パラメータはqrealsに格納されている値を指しています。ポインタのいずれかがnullptr の場合、その値は更新されません。

QGraphicsWidget::setContentsMargins()も参照のこと

QGraphicsItem *QGraphicsLayoutItem::graphicsItem() const

このレイアウト項目が表すQGraphicsItem を返します。QGraphicsWidget 。カスタムアイテムの場合は、集約された値を返すことができます。

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

[virtual, since 6.0] bool QGraphicsLayoutItem::isEmpty() const

このアイテムが空である場合、すなわち内容がなく、スペースを占有すべきではない場合はtrue を返す。

デフォルトの実装では、アイテムが隠された場合、true true を返します。ただし、size policy に retainSizeWhenHidden が設定されている場合を除きます。true

この関数は Qt 6.0 で導入されました。

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

bool QGraphicsLayoutItem::isLayout() const

このQGraphicsLayoutItem がレイアウトである場合(例えば、他のQGraphicsLayoutItem オブジェクトを配置するオブジェクトに継承されている場合)はtrue を返し、そうでない場合はfalse を返します。

QGraphicsLayoutも参照してください

qreal QGraphicsLayoutItem::maximumHeight() const

最大の高さを返します。

setMaximumHeight()、setMaximumSize() およびmaximumSize()も参照

QSizeF QGraphicsLayoutItem::maximumSize() const

最大サイズを返す。

setMaximumSize()、minimumSize()、preferredSize()、Qt::MaximumSize 、およびsizeHint()も参照

qreal QGraphicsLayoutItem::maximumWidth() const

最大幅を返す。

setMaximumWidth()、setMaximumSize() およびmaximumSize()も参照

qreal QGraphicsLayoutItem::minimumHeight() const

最小の高さを返します。

setMinimumHeight()、setMinimumSize() およびminimumSize()も参照

QSizeF QGraphicsLayoutItem::minimumSize() const

最小サイズを返す。

setMinimumSize()、preferredSize()、maximumSize()、Qt::MinimumSize 、およびsizeHint()も参照

qreal QGraphicsLayoutItem::minimumWidth() const

最小幅を返す。

setMinimumWidth()、setMinimumSize() およびminimumSize()も参照

bool QGraphicsLayoutItem::ownedByLayout() const

レイアウトがそのデストラクタでこのアイテムを削除すべきかどうかを返します。trueの場合、レイアウトはこのアイテムを削除します。falseの場合、別のオブジェクトがこのアイテムのオーナーシップを持っているとみなされ、レイアウトはこのアイテムを削除しません。

アイテムがQGraphicsItemQGraphicsLayoutItem の両方を継承している場合(QGraphicsWidget のように)、アイテムは実際には2つの所有権階層に属しています。このプロパティは、レイアウトが破棄されたときに、子アイテムをどのように処理すべきかを通知します。QGraphicsWidget の場合、レイアウトが削除されても、その子アイテムは削除されないことが望ましいです(子アイテムもグラフィックス・アイテム階層の一部だからです)。

デフォルトでは、この値はQGraphicsLayoutItem で false に初期化されますが、QGraphicsLayout では true を返すようにオーバーライドされます。これは、QGraphicsLayout は通常、QGraphicsItem 階層の一部ではないため、親レイアウトが削除する必要があるためです。サブクラスは、setOwnedByLayout(true)を呼び出すことで、このデフォルトの動作をオーバーライドすることができます。

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

QGraphicsLayoutItem *QGraphicsLayoutItem::parentLayoutItem() const

このQGraphicsLayoutItem の親を返します。親が存在しない場合、または親がQGraphicsLayoutItem を継承していない場合はnullptr を返します (QGraphicsLayoutItem は、QObject から派生したクラスと多重継承して使用されることがよくあります)。

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

qreal QGraphicsLayoutItem::preferredHeight() const

優先する高さを返します。

setPreferredHeight()、setPreferredSize() およびpreferredSize()も参照

QSizeF QGraphicsLayoutItem::preferredSize() const

優先サイズを返す。

setPreferredSize()、minimumSize()、maximumSize()、Qt::PreferredSize 、およびsizeHint()も参照

qreal QGraphicsLayoutItem::preferredWidth() const

優先される幅を返す。

setPreferredWidth()、setPreferredSize() およびpreferredSize()も参照 ください。

[virtual] void QGraphicsLayoutItem::setGeometry(const QRectF &rect)

この仮想関数は、QGraphicsLayoutItem のジオメトリを親座標のrect に設定します(例えば、rect の左上隅は、親座標におけるアイテムの位置に相当します)。

ジオメトリの更新を受け取るには、QGraphicsLayoutItem のサブクラスでこの関数を再実装する必要があります。レイアウトは再配置を行うときにこの関数を呼び出します。

rectminimumSizemaximumSize の境界の外にある場合、最も近いサイズに調整され、法的な境界内に収まるようになります。

geometry()も参照

[protected] void QGraphicsLayoutItem::setGraphicsItem(QGraphicsItem *item)

QGraphicsLayoutItemQGraphicsItem を表し、QGraphicsLayout の自動再ペアレント機能を利用したい場合は、この値を設定する必要があります。item を削除し、レイアウト項目を削除しない場合は、ポインタのぶらつきを避けるために、 setGraphicsItem(nullptr) を呼び出す責任があることに注意してください。

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

void QGraphicsLayoutItem::setMaximumHeight(qreal height)

最大の高さをheight に設定する。

maximumHeight(),setMaximumSize(),maximumSize()も参照のこと

void QGraphicsLayoutItem::setMaximumSize(const QSizeF &size)

最大サイズをsize に設定します。このプロパティは、Qt::MaximumSize に対してsizeHint() を上書きし、effectiveSizeHint() がsize より大きいサイズを返さないようにします。 最大サイズの設定を解除するには、無効なサイズを使用します。

maximumSize()、minimumSize()、preferredSize()、Qt::MaximumSize 、およびsizeHint()も参照

void QGraphicsLayoutItem::setMaximumSize(qreal w, qreal h)

この便宜関数は、setMaximumSize(QSizeF(w,h)) を呼び出すのと等価である。

maximumSize(),setMinimumSize(),setPreferredSize(),sizeHint()も参照

void QGraphicsLayoutItem::setMaximumWidth(qreal width)

最大幅をwidth に設定する。

maximumWidth()、setMaximumSize()、maximumSize()も参照のこと

void QGraphicsLayoutItem::setMinimumHeight(qreal height)

最小の高さをheight に設定する。

minimumHeight(),setMinimumSize(),minimumSize()も参照

void QGraphicsLayoutItem::setMinimumSize(const QSizeF &size)

最小サイズをsize に設定します。このプロパティは、Qt::MinimumSize に対してsizeHint() を上書きし、effectiveSizeHint() がsize より小さいサイズを決して返さないようにします。 最小サイズの設定を解除するには、無効なサイズを使用します。

minimumSize()、maximumSize()、preferredSize()、Qt::MinimumSizesizeHint()、setMinimumWidth()、setMinimumHeight()も参照

void QGraphicsLayoutItem::setMinimumSize(qreal w, qreal h)

この便宜関数は、setMinimumSize(QSizeF(w,h)) を呼び出すのと等価である。

minimumSize(),setMaximumSize(),setPreferredSize(),sizeHint()も参照

void QGraphicsLayoutItem::setMinimumWidth(qreal width)

最小幅をwidth に設定する。

minimumWidth(),setMinimumSize(),minimumSize()も参照

[protected] void QGraphicsLayoutItem::setOwnedByLayout(bool ownership)

レイアウトがそのデストラクタでこのアイテムを削除するかどうかを設定します。ownership 、レイアウトが削除するためにはtrueでなければなりません。

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

void QGraphicsLayoutItem::setParentLayoutItem(QGraphicsLayoutItem *parent)

このQGraphicsLayoutItem の親をparent に設定する。

parentLayoutItem()も参照のこと

void QGraphicsLayoutItem::setPreferredHeight(qreal height)

優先する高さをheight に設定する。

preferredHeight(),preferredWidth(),setPreferredSize(),preferredSize()も参照

void QGraphicsLayoutItem::setPreferredSize(const QSizeF &size)

優先サイズをsize に設定する。このプロパティは、Qt::PreferredSize に対してはsizeHint() を上書きし、effectiveSizeHint() に対してはデフォルト値を提供する。優先サイズの設定を解除するには、無効なサイズを使用します。

preferredSize()、minimumSize()、maximumSize()、Qt::PreferredSize 、およびsizeHint()も参照

void QGraphicsLayoutItem::setPreferredSize(qreal w, qreal h)

この便宜関数は、setPreferredSize(QSizeF(w,h)) を呼び出すのと等価である。

preferredSize(),setMaximumSize(),setMinimumSize(),sizeHint()も参照のこと

void QGraphicsLayoutItem::setPreferredWidth(qreal width)

優先する幅をwidth に設定する。

preferredWidth(),preferredHeight(),setPreferredSize(),preferredSize()も参照

void QGraphicsLayoutItem::setSizePolicy(const QSizePolicy &policy)

サイズ・ポリシーをpolicy に設定します。 サイズ・ポリシーは、レイアウトに配置されたとき、アイテムが水平方向と垂直方向にどのように成長すべきかを記述します。

QGraphicsLayoutItemのデフォルトのサイズ・ポリシーは (QSizePolicy::Fixed,QSizePolicy::Fixed,QSizePolicy::DefaultType) ですが、サブクラスがデフォルトを変更することはよくあります。たとえば、QGraphicsWidget のデフォルトは (QSizePolicy::Preferred,QSizePolicy::Preferred,QSizePolicy::DefaultType) です。

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

void QGraphicsLayoutItem::setSizePolicy(QSizePolicy::Policy hPolicy, QSizePolicy::Policy vPolicy, QSizePolicy::ControlType controlType = QSizePolicy::DefaultType)

これはオーバーロードされた関数である。

この関数は、setSizePolicy(QSizePolicy(hPolicy,vPolicy,controlType)) を呼び出すのと同じです。

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

[pure virtual protected] QSizeF QGraphicsLayoutItem::sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const

この純粋な仮想関数は、QGraphicsLayoutItemwhich のサイズヒントを返し、constraint の幅または高さを使用して出力を制約します。

QGraphicsLayoutItem のサブクラスでこの関数を再実装し、アイテムに必要なサイズヒントを提供します。

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

QSizePolicy QGraphicsLayoutItem::sizePolicy() const

現在のサイズ・ポリシーを返します。

setSizePolicy() およびQWidget::sizePolicy()も参照

[virtual] void QGraphicsLayoutItem::updateGeometry()

この仮想関数は、キャッシュされたサイズヒント情報を破棄する。sizeHint() 関数の戻り値を変更する場合は、常にこの関数を呼び出す必要があります。サブクラスがこの関数を再実装する場合は、常にベース実装を呼び出す必要があります。

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

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