QGraphicsLayoutItem Class
QGraphicsLayoutItemクラスを継承することで、カスタムアイテムをレイアウトで管理できるようになります。詳細...
Header: | #include <QGraphicsLayoutItem> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Inherited By: |
パブリック関数
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 には、アイテム自体とアイテムのユーザーの両方に関連する関数が含まれています。
ほとんどの場合、QGraphicsWidget やQGraphicsLayout などの既存のレイアウト対応クラスが、必要な機能をすでに提供しています。しかし、これらのクラスをサブクラス化することで、レイアウトと連動するグラフィカル・エレメント (QGraphicsWidget) やカスタムレイアウト (QGraphicsLayout) の両方を作成できるようになります。
QGraphicsLayoutItem のサブクラス化
QGraphicsLayoutItem のサブクラスを作成し、その仮想関数を再実装すれ ば、QGraphicsWidget やQGraphicsLayout を含む他の 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 自身にその利用が広がるかもしれません。
QGraphicsWidget 、QGraphicsLayout 、QGraphicsLinearLayout 、QGraphicsGridLayoutも参照してください 。
メンバ関数ドキュメント
QGraphicsLayoutItem::QGraphicsLayoutItem(QGraphicsLayoutItem *parent = nullptr, bool isLayout = false)
QGraphicsLayoutItem オブジェクトを構築します。parent がオブジェクトの親になります。isLayout が true の場合、アイテムはレイアウトです。そうでない場合、isLayout は false です。
[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()、setPreferredSize 、setMaximumSize() のいずれか(または両方の組み合わせ)を呼び出すことで、有効サイズのヒントを調整できます。
この関数は、各サイズ・ヒントをキャッシュし、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
この仮想関数は、このQGraphicsLayoutItem のleft 、top 、right 、bottom の内容余白を提供します。デフォルトの実装では、すべてのコンテンツの余白は0であると仮定されます。パラメータはqrealsに格納された値を指します。ポインタのいずれかがnullptr
の場合、その値は更新されません。
QGraphicsWidget::setContentsMargins()も参照してください 。
QGraphicsItem *QGraphicsLayoutItem::graphicsItem() const
このレイアウト項目が表すQGraphicsItem を返します。QGraphicsWidget 。カスタム・アイテムの場合は、集約値を返すことができます。
setGraphicsItem() も参照 ください。
[virtual, since 6.0]
bool QGraphicsLayoutItem::isEmpty() const
このアイテムが空である場合、つまり、内容を持たず、スペースを占有すべきではない場合はtrue
を返します。
デフォルトの実装では、size policy に retainSizeWhenHidden が設定されていない限り、アイテムが非表示になっている場合、true
true を返します。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の場合、別のオブジェクトがこのアイテムの所有権を持っているとみなされ、レイアウトはこのアイテムを削除しません。
アイテムがQGraphicsItem とQGraphicsLayoutItem の両方を継承している場合(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 のサブクラスでこの関数を再実装する必要があります。レイアウトは再配置を行うときにこの関数を呼び出します。
rect がminimumSize とmaximumSize の境界の外にある場合、最も近いサイズに調整され、法的な境界内に収まるようになります。
geometry()も参照のこと 。
[protected]
void QGraphicsLayoutItem::setGraphicsItem(QGraphicsItem *item)
QGraphicsLayoutItem がQGraphicsItem を表し、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::MinimumSize 、sizeHint()、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 が真でなければなりません。
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
この純粋仮想関数は、QGraphicsLayoutItem のwhich のサイズヒントを返し、constraint の幅または高さを使用して出力を制約します。
QGraphicsLayoutItem のサブクラスでこの関数を再実装し、アイテムに必要なサイズヒントを提供します。
effectiveSizeHint()も参照してください 。
QSizePolicy QGraphicsLayoutItem::sizePolicy() const
現在のサイズ・ポリシーを返します。
setSizePolicy() およびQWidget::sizePolicy() も参照 。
[virtual]
void QGraphicsLayoutItem::updateGeometry()
この仮想関数は、キャッシュされたサイズヒント情報を破棄します。sizeHint() 関数の返り値を変更する場合は、常にこの関数を呼び出す必要があります。サブクラスがこの関数を再実装する場合は、常にベース実装を呼び出す必要があります。
effectiveSizeHint()も参照してください 。
©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。