このページでは

QQuickItem Class

QQuickItem クラスは、 Qt Quick。詳細...

ヘッダー: #include <QQuickItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake: QT += quick
QML内: Item
継承元:QObject およびQQmlParserStatus
継承元:

QQuickFramebufferObject、QQuickPaintedItem 、およびQQuickRhiItem

パブリック型

union ItemChangeData
enum Flag { ItemClipsChildrenToShape, ItemAcceptsInputMethod, ItemIsFocusScope, ItemHasContents, ItemAcceptsDrops, …, ItemObservesViewport }
flags Flags
enum ItemChange { ItemChildAddedChange, ItemChildRemovedChange, ItemSceneChange, ItemVisibleHasChanged, ItemParentHasChanged, …, ItemTransformHasChanged }
(since 6.12) enum MutabilityGroup { AutoMutabilityGroup, StaticMutabilityGroup, ModerateMutabilityGroup, DynamicMutabilityGroup }
enum TransformOrigin { TopLeft, Top, TopRight, Left, Center, …, BottomRight }

プロパティ

パブリック関数

QQuickItem(QQuickItem *parent = nullptr)
virtual ~QQuickItem() override
bool acceptHoverEvents() const
bool acceptTouchEvents() const
Qt::MouseButtons acceptedMouseButtons() const
bool activeFocusOnTab() const
bool antialiasing() const
qreal baselineOffset() const
QBindable<qreal> bindableHeight()
QBindable<qreal> bindableWidth()
QBindable<qreal> bindableX()
QBindable<qreal> bindableY()
virtual QRectF boundingRect() const
QQuickItem *childAt(qreal x, qreal y) const
QList<QQuickItem *> childItems() const
QRectF childrenRect()
bool clip() const
virtual QRectF clipRect() const
QObject *containmentMask() const
virtual bool contains(const QPointF &point) const
QCursor cursor() const
(since 6.3) void dumpItemTree() const
(since 6.3) void ensurePolished()
bool filtersChildMouseEvents() const
QQuickItem::Flags flags() const
Qt::FocusPolicy focusPolicy() const
void forceActiveFocus()
void forceActiveFocus(Qt::FocusReason reason)
QSharedPointer<QQuickItemGrabResult> grabToImage(const QSize &targetSize = QSize())
bool hasActiveFocus() const
bool hasFocus() const
qreal height() const
qreal implicitHeight() const
qreal implicitWidth() const
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const
bool isAncestorOf(const QQuickItem *child) const
bool isEnabled() const
bool isFocusScope() const
virtual bool isTextureProvider() const
bool isVisible() const
bool keepMouseGrab() const
bool keepTouchGrab() const
QPointF mapFromGlobal(const QPointF &point) const
QPointF mapFromItem(const QQuickItem *item, const QPointF &point) const
QPointF mapFromScene(const QPointF &point) const
QRectF mapRectFromItem(const QQuickItem *item, const QRectF &rect) const
QRectF mapRectFromScene(const QRectF &rect) const
QRectF mapRectToItem(const QQuickItem *item, const QRectF &rect) const
QRectF mapRectToScene(const QRectF &rect) const
QPointF mapToGlobal(const QPointF &point) const
QPointF mapToItem(const QQuickItem *item, const QPointF &point) const
QPointF mapToScene(const QPointF &point) const
int mutabilityGroup() const
QQuickItem *nextItemInFocusChain(bool forward = true)
qreal opacity() const
QQuickItem *parentItem() const
void polish()
void resetAntialiasing()
void resetHeight()
void resetWidth()
qreal rotation() const
qreal scale() const
QQuickItem *scopedFocusItem() const
void setAcceptHoverEvents(bool enabled)
void setAcceptTouchEvents(bool enabled)
void setAcceptedMouseButtons(Qt::MouseButtons buttons)
void setActiveFocusOnTab(bool)
void setAntialiasing(bool)
void setBaselineOffset(qreal)
void setClip(bool)
void setContainmentMask(QObject *mask)
void setCursor(const QCursor &cursor)
void setEnabled(bool)
void setFiltersChildMouseEvents(bool filter)
void setFlag(QQuickItem::Flag flag, bool enabled = true)
void setFlags(QQuickItem::Flags flags)
void setFocus(bool)
void setFocus(bool focus, Qt::FocusReason reason)
void setFocusPolicy(Qt::FocusPolicy policy)
void setHeight(qreal)
void setImplicitHeight(qreal)
void setImplicitWidth(qreal)
void setKeepMouseGrab(bool keep)
void setKeepTouchGrab(bool keep)
void setMutabilityGroup(int mutabilityGroup)
void setOpacity(qreal)
void setParentItem(QQuickItem *parent)
void setRotation(qreal)
void setScale(qreal)
void setSize(const QSizeF &size)
void setSmooth(bool)
void setState(const QString &)
void setTransformOrigin(QQuickItem::TransformOrigin)
void setVisible(bool)
void setWidth(qreal)
void setX(qreal)
void setY(qreal)
void setZ(qreal)
QSizeF size() const
bool smooth() const
void stackAfter(const QQuickItem *sibling)
void stackBefore(const QQuickItem *sibling)
QString state() const
virtual QSGTextureProvider *textureProvider() const
QQuickItem::TransformOrigin transformOrigin() const
void unsetCursor()
QQuickItem *viewportItem() const
qreal width() const
QQuickWindow *window() const
qreal x() const
qreal y() const
qreal z() const

パブリックスロット

void update()

シグナル

void containmentMaskChanged()
void windowChanged(QQuickWindow *window)

protected 関数

virtual bool childMouseEventFilter(QQuickItem *item, QEvent *event)
virtual void dragEnterEvent(QDragEnterEvent *event)
virtual void dragLeaveEvent(QDragLeaveEvent *event)
virtual void dragMoveEvent(QDragMoveEvent *event)
virtual void dropEvent(QDropEvent *event)
virtual void focusInEvent(QFocusEvent *event)
virtual void focusOutEvent(QFocusEvent *event)
(since 6.0) virtual void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
bool heightValid() const
virtual void hoverEnterEvent(QHoverEvent *event)
virtual void hoverLeaveEvent(QHoverEvent *event)
virtual void hoverMoveEvent(QHoverEvent *event)
virtual void inputMethodEvent(QInputMethodEvent *event)
bool isComponentComplete() const
virtual void itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value)
virtual void keyPressEvent(QKeyEvent *event)
virtual void keyReleaseEvent(QKeyEvent *event)
virtual void mouseDoubleClickEvent(QMouseEvent *event)
virtual void mouseMoveEvent(QMouseEvent *event)
virtual void mousePressEvent(QMouseEvent *event)
virtual void mouseReleaseEvent(QMouseEvent *event)
virtual void mouseUngrabEvent()
virtual void releaseResources()
virtual void touchEvent(QTouchEvent *event)
virtual void touchUngrabEvent()
void updateInputMethod(Qt::InputMethodQueries queries = Qt::ImQueryInput)
virtual QSGNode *updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *updatePaintNodeData)
virtual void updatePolish()
virtual void wheelEvent(QWheelEvent *event)
bool widthValid() const

再実装された保護関数

virtual void classBegin() override
virtual void componentComplete() override
virtual bool event(QEvent *ev) override

詳細な説明

Qt Quick 内のすべてのビジュアルアイテムは、QQuickItem を継承しています。QQuickItem のインスタンスには視覚的な外観はありませんが、x および y 座標、幅と高さ、アンカー設定、キー処理のサポートなど、ビジュアルアイテムに共通するすべての属性を定義しています。

QQuickItem をサブクラス化することで、これらの機能を継承する独自のビジュアルアイテムを提供することができます。

カスタムシーングラフアイテム

すべての視覚的な QML アイテムはシーングラフを使用してレンダリングされます。シーングラフのデフォルトの実装は、OpenGL、Vulkan、Metal、Direct 3D などのアクセラレーションされたグラフィックス API と密接に連携した、低レベルで高性能なレンダリングスタックです。 QQuickItem のサブクラスは、QQuickItem::ItemHasContents フラグを設定し、QQuickItem::updatePaintNode() 関数を再実装することで、シーングラフに独自のカスタムコンテンツを追加することができます。

警告: グラフィックス処理およびシーングラフとのやり取りは、主にupdatePaintNode()の呼び出し中に、レンダリングスレッド上でのみ行われることが極めて重要です。 経験則として、QQuickItem::updatePaintNode()関数内では「QSG」という接頭辞を持つクラスのみを使用することを推奨します。

注: 接頭辞「QSG」が付いたすべてのクラスは 、シーングラフのレンダリングスレッド上でのみ使用する必要があります。詳細については、「シーングラフとレンダリング」を参照してください。

グラフィックスリソースの取り扱い

シーングラフで使用されるグラフィックスリソースのクリーンアップを処理する推奨される方法は、ノードの自動クリーンアップに依存することです。QQuickItem::updatePaintNode() から返されるQSGNode は、適切なスレッドで適切なタイミングで自動的に削除されます。QSGNode インスタンスのツリーは、デフォルトで設定されているQSGNode::OwnedByParent を通じて管理されます。したがって、ほとんどのカスタムシーングラフアイテムについては、追加の作業は必要ありません。

QQuickItem::textureProvider() を実装するアイテムなど、グラフィックリソースをノードツリー外に保存する実装については、QML でのそのアイテムの使用方法に応じて、適切にクリーンアップを行う必要があります。対処すべき状況は以下の通りです:

  • シーングラフが無効化される場合。これは、プラットフォームやQQuickWindow の設定によっては、QQuickWindow::hide() を使用してウィンドウが非表示にされたとき、またはウィンドウが閉じられたときに発生する可能性があります。アイテムクラスがinvalidateSceneGraph() という名前のslot を実装している場合、このスロットはGUIスレッドがブロックされている間にレンダリングスレッド上で呼び出されます。これは、QQuickWindow::sceneGraphInvalidated() に接続することと同等です。 OpenGL を通じてレンダリングする場合、このスロットが呼び出されると、このアイテムのウィンドウの OpenGL コンテキストがバインドされます。唯一の例外は、EGL_CONTEXT_LOST などを通じて、Qt の制御外でネイティブ OpenGL が破棄された場合です。
  • アイテムがシーンから削除された場合。例えば、親が `null ` に設定されていたり、別のウィンドウ内のアイテムであったりして、アイテムがシーンから外された場合、GUIスレッド上で `QQuickItem::releaseResources()` が呼び出されます。レンダリングリソースのクリーンアップをスケジュールするには、`QQuickWindow::scheduleRenderJob()` を使用する必要があります。
  • アイテムが削除されます。アイテムのデストラクタが実行された際は、そのアイテムが保持しているグラフィックリソースをすべて削除する必要があります。上記の2つの条件のいずれも満たされていない場合、そのアイテムはウィンドウの一部であり、QQuickWindow::scheduleRenderJob() を使用してそれらをクリーンアップすることが可能です。 実装が `QQuickItem::releaseResources()` の呼び出しを無視する場合、多くの場合、そのアイテムは `QQuickWindow ` にアクセスできなくなり、その結果、クリーンアップをスケジュールする手段がなくなります。

QQuickWindow::scheduleRenderJob() を使用してグラフィックリソースのクリーンアップをスケジュールする際は、QQuickWindow::BeforeSynchronizingStage またはQQuickWindow::AfterSynchronizingStage を使用する必要があります。同期ステージとは、QML ツリーの変更の結果としてシーングラフが更新される段階のことです。これ以外のタイミングでクリーンアップをスケジュールすると、シーングラフの他の部分がまだ更新されていないため、新しく削除されたオブジェクトを参照し続けてしまう可能性があります。

注: QObject::deleteLater() を使用して グラフィックリソースをクリーンアップすることは 強く推奨されません。これにより、delete の処理が任意のタイミングで実行されることになり、削除が行われる時点で OpenGL コンテキストがバインドされているかどうかが不明となるためです。

カスタム QPainter アイテム

QQuickItem には、QQuickPaintedItem というサブクラスが用意されており、これによりユーザーはQPainter を使用してコンテンツをレンダリングすることができます。

警告: QQuickPaintedItem を使用すると 、ソフトウェアラスタライズを用いて間接的な 2D サーフェスを通じてコンテンツがレンダリングされるため、レンダリングは 2 段階の操作となります。まずサーフェスをラスタライズし、次にサーフェスを描画します。シーングラフ API を直接使用した方が、常に大幅に高速です。

挙動アニメーション

ItemがBehavior 型を使用してプロパティ変更のアニメーションを定義している場合、C++からそれらのプロパティを変更する必要があるときは、常にQObject::setProperty()、QQmlProperty()、またはQMetaProperty::write()のいずれかを使用する必要があります。これにより、QMLエンジンがプロパティの変更を確実に認識できるようになります。 そうしないと、エンジンは要求されたアニメーションを実行できなくなります。なお、これらの関数を使用すると、パフォーマンスがわずかに低下することに注意してください。詳細については、「C++ から QML オブジェクト型のメンバーにアクセスする」を参照してください。

「 QQuickWindow 」および「QQuickPaintedItem 」も参照してください 。

メンバ型のドキュメント

enum QQuickItem::Flag
flags QQuickItem::Flags

この列挙型は、さまざまな項目のプロパティを指定するために使用されます。

定数定数名説明
QQuickItem::ItemClipsChildrenToShape0x01このアイテムは、子要素が本アイテムの境界内でのみレンダリングされるように、子要素を視覚的にクリップする必要があることを示します。
QQuickItem::ItemAcceptsInputMethod0x02このアイテムがテキスト入力方式をサポートしていることを示します。
QQuickItem::ItemIsFocusScope0x04このアイテムがフォーカススコープであることを示します。詳細については、『Qt Quick 』の「キーボードフォーカス」を参照してください。
QQuickItem::ItemHasContents0x08このアイテムには視覚的なコンテンツがあり、シーングラフによってレンダリングされる必要があることを示します。
QQuickItem::ItemAcceptsDrops0x10このアイテムがドラッグ&ドロップイベントを受け付けることを示します。
QQuickItem::ItemIsViewport0x20このアイテムが子要素のビューポートを定義していることを示します。
QQuickItem::ItemObservesViewport0x40任意の祖先アイテムで ItemIsViewport フラグが設定されている場合、そのアイテムはビューポートの境界を知りたいことを示します。

Flags 型は、QFlags<Flag> の typedef です。Flag 値の論理和(OR)の組み合わせを格納します。

setFlag()、setFlags()、およびflags()も参照してください 。

enum QQuickItem::ItemChange

QQuickItem::itemChange() と組み合わせて使用し、特定の種類の変更をアイテムに通知します。

定数値説明
QQuickItem::ItemChildAddedChange0子要素が追加されました。ItemChangeData::item には、追加された子要素が含まれています。
QQuickItem::ItemChildRemovedChange1子要素が削除されました。ItemChangeData::item には、削除された子要素が含まれています。
QQuickItem::ItemSceneChange2アイテムがシーンに追加または削除されました。シーンをレンダリングするQQuickWindow は、ItemChangeData::window を使用して指定されます。アイテムがシーンから削除された場合、windowパラメータはnullになります。
QQuickItem::ItemVisibleHasChanged3アイテムの可視状態が変更されました。ItemChangeData::boolValue には新しい可視状態が含まれています。
QQuickItem::ItemParentHasChanged4アイテムの親が変更されました。ItemChangeData::item には新しい親が格納されています。
QQuickItem::ItemOpacityHasChanged5アイテムの不透明度が変更されました。ItemChangeData::realValue には新しい不透明度が格納されています。
QQuickItem::ItemActiveFocusHasChanged6アイテムのフォーカスが変更されました。ItemChangeData::boolValue には、アイテムがフォーカスを持っているかどうかが格納されています。
QQuickItem::ItemRotationHasChanged7項目の回転角度が変更されました。ItemChangeData::realValue には新しい回転角度が格納されます。
QQuickItem::ItemDevicePixelRatioHasChanged9アイテムが表示されている画面のデバイスピクセル比が変更されました。ItemChangedData::realValue には、新しいデバイスピクセル比が格納されています。
QQuickItem::ItemAntialiasingHasChanged8アンチエイリアシングが変更されました。現在の値(ブール値)は、QQuickItem::antialiasing にあります。
QQuickItem::ItemEnabledHasChanged10項目の有効状態が変更されました。ItemChangeData::boolValue には新しい有効状態が格納されています。(Qt 5.10 以降)
QQuickItem::ItemScaleHasChanged11アイテムのスケールが変更されました。ItemChangeData::realValue にはスケールが格納されています。(Qt 6.9以降)
QQuickItem::ItemTransformHasChanged12項目のトランスフォームが変更されました。これは、項目の位置、サイズ、回転、スケール、transformOrigin 、またはアタッチされたトランスフォームが変更された場合に発生します。ItemChangeData::item には、変更の原因となった項目が含まれます。(Qt 6.9以降)

[since 6.12] enum QQuickItem::MutabilityGroup

この列挙型は、mutabilityGroup プロパティで使用できる事前定義済みの値を提供します。

定数定数名 値説明
QQuickItem::AutoMutabilityGroup0x0デフォルトの可変性グループ。
QQuickItem::StaticMutabilityGroup0x1アイテムがめったに、あるいはまったく更新されないことを示します。
QQuickItem::ModerateMutabilityGroup0x8その項目が中程度の頻度で更新されることを示します。
QQuickItem::DynamicMutabilityGroup0xfその項目が頻繁に、あるいは毎フレーム更新されることを示します。

この列挙型は Qt 6.12 で導入されました。

enum QQuickItem::TransformOrigin

スケールなどの単純な変形が適用される中心点を制御します。

定数値説明
QQuickItem::TopLeft0アイテムの左上隅。
QQuickItem::Top1アイテムの上部の中心点。
QQuickItem::TopRight2項目の右上の角。
QQuickItem::Left3垂直方向の中央の最も左側の点。
QQuickItem::Center4アイテムの中心。
QQuickItem::Right5垂直方向の中央の最も右側の点。
QQuickItem::BottomLeft6項目の左下隅。
QQuickItem::Bottom7アイテムの下端の中心点。
QQuickItem::BottomRight8項目の右下隅。

transformOrigin() およびsetTransformOrigin()も参照してください 。

プロパティのドキュメント

[read-only] activeFocus : bool

この読み取り専用プロパティは、そのアイテムがアクティブなフォーカスを持っているかどうかを示します。

activeFocus が true の場合、このアイテムが現在キーボード入力を受けているか、あるいは現在キーボード入力を受けているアイテムの `FocusScope ` 祖先であるかのいずれかです。

通常、activeFocus は、アイテムおよびそれを囲むFocusScope オブジェクトにfocus を設定することで取得されます。次の例では、input およびfocusScope オブジェクトはアクティブなフォーカスを持ちますが、ルート矩形オブジェクトは持ちません。

import QtQuick 2.0

Rectangle {
    width: 100; height: 100

    FocusScope {
        focus: true

        TextInput {
            id: input
            focus: true
        }
    }
}

アクセス関数:

bool hasActiveFocus() const

『Qt Quick 』の「 focus 」 および「Keyboard Focus」も参照してください 。

activeFocusOnTab : bool

このプロパティは、その項目がタブのフォーカスチェーンに含まれるかどうかを指定します。デフォルトでは、false に設定されています。

注: tabFocusBehavior を使用すると、フォーカスを特定の種類のコントロール(テキストコントロールやリストコントロールなど)のみにさらに制限することができます。これは macOS の場合に当てはまり、システム設定に基づいて特定のコントロールへのフォーカスが制限されることがあります。

アクセス関数:

bool activeFocusOnTab() const
void setActiveFocusOnTab(bool)

関連項目: ` QStyleHints::tabFocusBehavior ` および `focusPolicy`。

antialiasing : bool

そのアイテムにアンチエイリアシングを適用するかどうかを指定します

ビジュアル要素が、そのアイテムにアンチエイリアシングを適用するかどうかを決定するために使用されます。場合によっては、アンチエイリアシングが適用されたアイテムはより多くのメモリを必要とし、レンダリングに時間がかかる可能性があります(詳細については「アンチエイリアシング」を参照してください)。

デフォルトは false ですが、派生要素によって上書きされる場合があります。

アクセス関数:

bool antialiasing() const
void setAntialiasing(bool)
void resetAntialiasing()

baselineOffset : qreal

アイテムのベースラインの位置をローカル座標で指定します。

Text 項目のベースラインとは、テキストが配置される仮想の線です。テキストを含むコントロールは、通常、そのテキストのベースラインを自身のベースラインとして設定します。

テキスト以外のアイテムについては、デフォルトのベースラインオフセットとして 0 が使用されます。

アクセス関数:

qreal baselineOffset() const
void setBaselineOffset(qreal)

[read-only] childrenRect : QRectF

このプロパティには、アイテムの子要素の集合的な位置とサイズが格納されます。

このプロパティは、アイテムのサイズを適切に設定するために、その子要素の集合的なジオメトリにアクセスする必要がある場合に役立ちます。

返されるジオメトリは、そのアイテムに固有のものです。例:

Item {
    x: 50
    y: 100

    // prints: QRectF(-10, -20, 30, 40)
    Component.onCompleted: print(childrenRect)

    Item {
        x: -10
        y: -20
        width: 30
        height: 40
    }
}

アクセス関数:

QRectF childrenRect()

clip : bool

このプロパティは、クリッピングが有効かどうかを指定します。デフォルトのクリッピング値は `false` です。

クリッピングが有効になっている場合、アイテムは自身の描画だけでなく、子要素の描画もバウンディング矩形内に切り取ります。アイテムの描画処理中にクリッピングを設定する場合は、シーンの他の部分が切り取られないように、設定を元に戻すことを忘れないでください。

注:クリッピングは レンダリングパフォーマンスに影響を与える可能性があります。詳細については、「クリッピング」を参照してください。

注: QMLの都合上 、clipをtrue に設定すると 、ItemIsViewport フラグも設定されます。これは場合によっては最適化として機能することがあります。つまり、ItemObservesViewport フラグが設定されている子アイテムは、ビューポートの外側にあるシーングラフノードの作成を省略することがあります。ただし、ItemIsViewport フラグは個別に設定することも可能です。

アクセス関数:

bool clip() const
void setClip(bool)

containmentMask : QObject*

このプロパティには、contains() メソッドで使用されるオプションのマスクが格納されています。このメソッドは、主に各QPointerEvent に対するヒットテストに使用されます。

QObject デフォルトでは、contains() は、Item のバウンディングボックス内の任意の点についてtrue を返します。ただし、QQuickItem 、または

Q_INVOKABLE bool contains(const QPointF &point) const;

という形式の関数を実装しているxml-ph-0002@deepl.internalやxml-ph-0003@deepl.internalであれば、マスクとして使用でき、ヒットテストをそのオブジェクトに委譲することができます。

注: contains() は、イベントの配信中に頻繁に呼び出されます。ヒットテストを別のオブジェクトに委譲すると、処理が多少遅くなります。そのオブジェクトのcontains() メソッドが効率的でない場合、containmentMask() はパフォーマンス上の問題を引き起こす可能性があります。カスタムのQQuickItem サブクラスを実装する場合は、代わりにcontains() をオーバーライドすることもできます。

アクセス関数:

QObject *containmentMask() const
void setContainmentMask(QObject *mask)

Notifierシグナル:

void containmentMaskChanged()

contains()も参照してください 。

enabled : bool

このプロパティは、そのアイテムがマウスおよびキーボードのイベントを受け取るかどうかを指定します。デフォルトでは true です。

このプロパティを設定すると、子項目の `enabled ` 値に直接影響します。`false` に設定すると、すべての子項目の `enabled ` 値も `false` になります。`true` に設定すると、子項目の `enabled ` 値は、明示的に `false` に設定されていない限り、`true` に戻ります。

このプロパティをfalse に設定すると、自動的にactiveFocus がfalse に設定され、このアイテムはキーボードイベントを受け取らなくなります。

注:ホバーイベントは 、setAcceptHoverEvents() によって個別に有効化されます。したがって、無効化されたアイテムは、このプロパティがfalse であっても、引き続きホバーイベントを受信できます。これにより、インタラクティブなアイテムが無効化されている場合でも、情報提供用のフィードバック(例:ToolTip )を表示することが可能になります。これは、そのアイテムの子要素として追加されたHoverHandlers に対しても同様に当てはまります。 ただし、HoverHandler は、明示的にdisabled に設定したり、例えば項目のenabled 状態にバインドしたりすることができます。

アクセス関数:

bool isEnabled() const
void setEnabled(bool)

「visible」も参照してください 。

focus : bool

このプロパティは、そのアイテムが、それを囲むFocusScope 内でフォーカスを持っているかどうかを指定します。trueの場合、囲むFocusScope がアクティブなフォーカスを獲得した際に、このアイテムもアクティブなフォーカスを獲得します。

次の例では、scope がアクティブなフォーカスを獲得すると、input にもアクティブなフォーカスが与えられます:

import QtQuick 2.0

Rectangle {
    width: 100; height: 100

    FocusScope {
        id: scope

        TextInput {
            id: input
            focus: true
        }
    }
}

このプロパティの目的上、シーン全体がフォーカススコープのように動作するとみなされます。実用上、これは以下のQMLコードが起動時にinput にアクティブなフォーカスを与えることを意味します。

Rectangle {
    width: 100; height: 100

    TextInput {
          id: input
          focus: true
    }
}

アクセス関数:

bool hasFocus() const
void setFocus(bool)
void setFocus(bool focus, Qt::FocusReason reason)

「 activeFocus 」 および「 Qt Quick 」の「Keyboard Focus」も参照してください 。

[since 6.7] focusPolicy : Qt::FocusPolicy

このプロパティは、アイテムがフォーカスを受け付ける方法を決定します。

この列挙型は Qt 6.7 で導入されました。

アクセス関数:

Qt::FocusPolicy focusPolicy() const
void setFocusPolicy(Qt::FocusPolicy policy)

[bindable] height : qreal

注:この プロパティは、QProperty バインディングに対応しています。

このプロパティには、この項目の高さが格納されます。

アクセス関数:

qreal height() const
void setHeight(qreal)
void resetHeight()

implicitHeight : qreal

implicitWidth : qreal

アイテムの推奨幅または高さを指定します。

width またはheight が指定されていない場合、項目の実効サイズはimplicitWidth またはimplicitHeight によって決定されます。

ただし、アイテムがレイアウトの子要素である場合、レイアウトはその暗黙的なサイズを使用してアイテムの優先サイズを決定します。このような場合、明示的に指定されたwidth またはheight は無視されます。

ほとんどの項目のデフォルトの暗黙的なサイズは 0x0 ですが、Image やText など、上書きできない固有の暗黙的なサイズを持つ項目もあります。

暗黙的なサイズを設定することは、コンテンツに基づいて推奨サイズを持つコンポーネントを定義するのに役立ちます。例えば:

// Label.qml
import QtQuick 2.0

Item {
    property alias icon: image.source
    property alias label: text.text
    implicitWidth: text.implicitWidth + image.implicitWidth
    implicitHeight: Math.max(text.implicitHeight, image.implicitHeight)
    Image { id: image }
    Text {
        id: text
        wrapMode: Text.Wrap
        anchors.left: image.right; anchors.right: parent.right
        anchors.verticalCenter: parent.verticalCenter
    }
}

注: implicitWidth 、Text 、またはTextEdit を使用し 、幅を明示的に設定すると、テキストのレイアウトが 2 回行われるため、パフォーマンスの低下を招きます。

[since 6.12] mutabilityGroup : int

アイテムの変更頻度に関するレンダラーへのヒント

これは、低レベルの最適化に使用できる高度なプロパティです。これは、アイテムがどのくらいの頻度で更新されるかについて、レンダラーへのヒントとして機能します。一般的な使用例では、このプロパティをデフォルト値(QQuickItem::AutoMutabilityGroup (0 ))のままにしておけば十分です。

ただし、パフォーマンス分析を行った結果、Qt Quick シーングラフ・レンダラーのデフォルト動作では最適化できなかったボトルネックが特定される場合があります。 これは通常、高速に更新されるジオメトリが静的なジオメトリとまとめてバッチ処理される場合に発生します。これを回避するには、例えば、高速に更新されるコンポーネントをQQuickItem::DynamicMutabilityGroup に割り当てることを試みることができます。異なる可変性グループに属するジオメトリは、まとめてバッチ処理されることはありません。

可変性グループの設定は、その項目自体にのみ適用されます。子要素には波及しません。

Qt Quick シーングラフレンダラーの内部動作やジオメトリのバッチ処理に関する詳細については、Qt Quick Scene Graph Default Rendererを参照してください。

注: 可変性グループの有効な数値範囲は [0 .. 15] です。このプロパティは、この範囲内にクリップされます。慣例として、グループの数値が大きくなるにつれて周波数が高くなることが想定されています。

この列挙型は Qt 6.12 で導入されました。

アクセス関数:

int mutabilityGroup() const
void setMutabilityGroup(int mutabilityGroup)

opacity : qreal

このプロパティは、アイテムの不透明度を保持します。不透明度は、0.0(完全に透明)から1.0(完全に不透明)までの数値で指定されます。デフォルト値は1.0です。

このプロパティを設定すると、指定された不透明度が子アイテムにも個別に適用されます。これにより、状況によっては意図しない結果が生じる場合があります。たとえば、以下の 2 番目の長方形群では、赤い長方形に不透明度 0.5 が指定されていますが、この設定は、不透明度が指定されていない青い子長方形の不透明度にも影響を与えています。

0 から 1 の範囲外の値はクリップされます。

不透明度が100%の赤と青の長方形

Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
        Rectangle {
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

赤と青の長方形は、親要素の不透明度0.5の影響により、どちらも半透明になっている

Item {
    Rectangle {
        opacity: 0.5
        color: "red"
        width: 100; height: 100
        Rectangle {
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

項目の不透明度を変更しても、その項目がユーザー入力イベントを受け取るかどうかには影響しません。(対照的に、visible プロパティをfalse に設定するとマウスイベントが停止し、enabled プロパティをfalse に設定するとマウスおよびキーボードイベントが停止し、さらにその項目からアクティブなフォーカスが外れます。)

アクセス関数:

qreal opacity() const
void setOpacity(qreal)

「visible」も参照してください 。

parent : QQuickItem*

このプロパティは、項目の視覚的な親を保持します。

注: ビジュアル親の概念は 、QObject 親の概念とは異なります。項目のビジュアル親は、必ずしもそのオブジェクト親と同じであるとは限りません。詳細については、 Qt Quick の「Concepts - Visual Parent」を参照してください。

注: このプロパティの通知シグナルは 、視覚的な親の破棄中に発火します。C++のシグナルハンドラは、視覚的な親階層内のアイテムがまだ完全に構築されているとは仮定できません。親階層内のアイテムが期待される型として安全に使用できることを確認するには、qobject_cast を使用してください。

アクセス関数:

QQuickItem *parentItem() const
void setParentItem(QQuickItem *parent)

rotation : qreal

このプロパティは、アイテムのtransformOrigin を基準に、時計回りで度単位の回転角度を保持します。

デフォルト値は 0 度(つまり、回転なし)です。

青い正方形の中に、30度回転した赤い正方形がある

Rectangle {
    color: "blue"
    width: 100; height: 100
    Rectangle {
        color: "red"
        x: 25; y: 25; width: 50; height: 50
        rotation: 30
    }
}

アクセス関数:

qreal rotation() const
void setRotation(qreal)

関連項目: Transform およびRotation 。

scale : qreal

このプロパティには、この項目の拡大縮小率が格納されます。

スケール値が 1.0 未満の場合、アイテムはより小さいサイズでレンダリングされ、1.0 より大きい場合はより大きいサイズでレンダリングされます。負のスケール値を設定すると、アイテムはレンダリング時に左右反転されます。

デフォルト値は 1.0 です。

スケーリングはtransformOrigin から適用されます。

特定の拡大率と配置が設定された青と赤の四角形

import QtQuick 2.0

Rectangle {
    color: "blue"
    width: 100; height: 100

    Rectangle {
        color: "green"
        width: 25; height: 25
    }

    Rectangle {
        color: "red"
        x: 25; y: 25; width: 50; height: 50
        scale: 1.4
    }
}

アクセス関数:

qreal scale() const
void setScale(qreal)

関連項目: Transform およびScale 。

smooth : bool

そのアイテムをスムージング処理するかどうかを指定します

主に画像ベースのアイテムで、そのアイテムでスムースサンプリングを使用するかどうかを決定するために使用されます。スムースサンプリングは線形補間を使用して行われ、スムースでない場合は最近傍法を使用して行われます。

Qt Quick 2.0 では、このプロパティがパフォーマンスに与える影響はごくわずかです。

デフォルトでは、このプロパティはtrue に設定されています。

アクセス関数:

bool smooth() const
void setSmooth(bool)

state : QString

このプロパティには、アイテムの現在の状態名が格納されます。

アイテムがデフォルトの状態、つまり明示的な状態が設定されていない場合、このプロパティには空の文字列が格納されます。同様に、このプロパティを空の文字列に設定することで、アイテムをデフォルトの状態に戻すことができます。

アクセス関数:

QString state() const
void setState(const QString &)

「Qt Quick 」の状態も参照してください 。

transformOrigin : TransformOrigin

このプロパティは、拡大縮小や回転の変換が行われる原点を指定します。

下の画像に示すように、9つの変換原点が利用可能です。デフォルトの変換原点はItem.Center です。

9つの変形原点を示す長方形:左上、上、右上、左、中央、右、左下、下、右下

アクセス関数:

QQuickItem::TransformOrigin transformOrigin() const
void setTransformOrigin(QQuickItem::TransformOrigin)

visible : bool

このプロパティは、アイテムが表示されているかどうかを指定します。デフォルトでは true です。

このプロパティを設定すると、子項目の `visible ` 値に直接影響します。`false` に設定すると、すべての子項目の `visible ` 値も `false` になります。`true` に設定すると、子項目の `visible ` 値は、明示的に `false` に設定されていない限り、`true` に戻ります。

(この連鎖的な動作のため、プロパティバインディングが明示的なプロパティ変更にのみ反応すべき場合、visible プロパティを使用しても意図した効果が得られない可能性があります。そのような場合は、代わりにopacity プロパティを使用する方が適切かもしれません。)

このプロパティが `false` に設定されている場合、そのアイテムはマウスイベントを受け取らなくなりますが、キーイベントは引き続き受け取り、設定されている場合はキーボードの `focus ` も保持されます。(対照的に、`enabled ` プロパティを `false ` に設定すると、マウスイベントとキーボードイベントの両方が停止し、アイテムからのフォーカスも解除されます。)

注:このプロ パティの値に影響を与えるのは、このプロパティ自体または親のvisible プロパティの変更のみです。たとえば、このアイテムが画面外へ移動した場合や、opacity が0に変更された場合でも、この値は変化しません。 ただし、歴史的な理由により、このプロパティは、アイテムがまだシーンに追加されていなくても、アイテムの構築後には true になります。シーンに追加されていないアイテムのこのプロパティを変更または読み取ると、期待した結果が得られない可能性があります。

注: このプロパティの通知シグナルは 、視覚的な親オブジェクトの破棄中に発火します。C++のシグナルハンドラでは、視覚的な親階層内のアイテムがまだ完全に構築されていると仮定してはいけません。親階層内のアイテムが期待される型として安全に使用できるかどうかを確認するには、qobject_cast を使用してください。

アクセス関数:

bool isVisible() const
void setVisible(bool)

関連項目: opacity およびenabled 。

[bindable] width : qreal

注:この プロパティは、QProperty のバインディングに対応しています。

このプロパティには、この項目の幅が格納されます。

アクセス関数:

qreal width() const
void setWidth(qreal)
void resetWidth()

[bindable] x : qreal

注:この プロパティは、QProperty のバインディングに対応しています。

アイテムの親に対する x 座標を定義します。

アクセス関数:

qreal x() const
void setX(qreal)

[bindable] y : qreal

注:この プロパティは、QProperty バインディングに対応しています。

アイテムの親に対する y 座標を定義します。

アクセス関数:

qreal y() const
void setY(qreal)

z : qreal

兄弟アイテムの重ね順を設定します。デフォルトの重ね順は 0 です。

スタック順序の値が大きいアイテムは、スタック順序の値が小さい兄弟アイテムの上に描画されます。スタック順序の値が同じアイテムは、出現順に上から下へ描画されます。スタック順序の値が負のアイテムは、親要素のコンテンツの下に描画されます。

次の例は、重ね順によるさまざまな効果を示しています。

赤い長方形の上に青い長方形があり、その後、兄弟が上に重なっている

同じz - 後に追加された子要素が先に追加された子要素の上に表示される:
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
    }
    Rectangle {
        color: "blue"
        x: 50; y: 50; width: 100; height: 100
    }
}

青い長方形の真上にある赤い長方形。z値が大きい方が上に重ねられる

z の値が大きいものが上になる場合:
Item {
    Rectangle {
        z: 1
        color: "red"
        width: 100; height: 100
    }
    Rectangle {
        color: "blue"
        x: 50; y: 50; width: 100; height: 100
    }
}

赤い長方形の上に青い長方形、子要素が親要素の上に重ねられている

同じz - 子要素が親要素より上にある場合:
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
        Rectangle {
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

青い四角形の上に赤い四角形があり、z値が負のものは親要素の下に重ねて表示される

下側のz :
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
        Rectangle {
            z: -1
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

アクセス関数:

qreal z() const
void setZ(qreal)

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

[explicit] QQuickItem::QQuickItem(QQuickItem *parent = nullptr)

指定されたparent を使用して、QQuickItemを生成します。

parent は、visual parent およびQObject の両方の親として使用されます。

[override virtual noexcept] QQuickItem::~QQuickItem()

QQuickItem を削除します。

bool QQuickItem::acceptHoverEvents() const

このアイテムがホバーイベントを受け付けるかどうかを返します。

デフォルト値は false です。

これが false の場合、このアイテムはhoverEnterEvent()、hoverMoveEvent()、およびhoverLeaveEvent() 関数を通じてホバーイベントを受け取りません。

setAcceptHoverEvents()も参照してください 。

bool QQuickItem::acceptTouchEvents() const

このアイテムがタッチイベントを受け付けるかどうかを返します。

デフォルト値はfalse です。

これが `false` の場合、このアイテムは `touchEvent()` 関数を通じてタッチイベントを受け取らなくなります。

setAcceptTouchEvents()も参照してください 。

Qt::MouseButtons QQuickItem::acceptedMouseButtons() const

このアイテムで受け付けられるマウスボタンを返します。

デフォルト値はQt::NoButton です。つまり、どのマウスボタンも受け付けません。

アイテムが特定のマウスイベントに対するマウスボタンを受け付けない場合、そのマウスイベントは当該アイテムには配信されず、代わりにアイテム階層内の次のアイテムに配信されます。

setAcceptedMouseButtons() およびacceptTouchEvents()も参照してください 。

[virtual] QRectF QQuickItem::boundingRect() const

そのアイテムの座標系における範囲を返します。0, 0 からwidth() およびheight() までの矩形です。

[invokable] QQuickItem *QQuickItem::childAt(qreal x, qreal y) const

このアイテムの座標系において、ポイント (x,y) で検出された、最初に表示されている子アイテムを返します。

そのような項目が存在しない場合は、nullptr を返します。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

QList<QQuickItem *> QQuickItem::childItems() const

このアイテムの子要素を返します。

[virtual protected] bool QQuickItem::childMouseEventFilter(QQuickItem *item, QEvent *event)

このメソッドを再実装して、このアイテムの子要素が受け取るポインタイベントをフィルタリングしてください。

このメソッドが呼び出されるのは、filtersChildMouseEvents()の値がtrue の場合のみです。

指定されたevent が指定された子item に渡されるべきでない場合はtrue を返し、それ以外の場合はfalse を返します。true を返す場合は、イベントの伝播を停止するか継続するかを示すために、event に対してaccept またはignore を実行する必要があります。ただし、event は常に親チェーン上のすべての子MouseEventFilterに送信されます。

注:名称とは異なりますが 、この関数は、すべての子(通常はマウス、タッチ、タブレットイベント)への配信中に、すべてのQPointerEvent インスタンスをフィルタリングします。サブクラスでこの関数をオーバーライドする際は、QPointerEvent にあるアクセサのみを使用して、汎用的なイベント処理コードを記述することをお勧めします。あるいは、event->type() および/またはevent->device()->type() を有効にして、イベントの種類ごとに異なる方法で処理することもできます。

注:フィルタリングは 、ジェスチャの曖昧性(たとえば、押下時にユーザーがタップするかドラッグするかがわからない場合など)が生じた際の責任分担を行う一つの方法にすぎません。 もう一つの方法は、押下時にQPointerEvent::addPassiveGrabber() を呼び出し、QEventPoint の進行状況を非排他的に監視することです。いずれの場合も、監視を行っているアイテムまたはポインタハンドラは、ジェスチャが期待したパターンに合致することが明らかになった時点で、後で排他的なグラブを奪うことができます。

setFiltersChildMouseEvents()も参照してください 。

[override virtual protected] void QQuickItem::classBegin()

QQmlParserStatus::classBegin() を再実装します。

派生クラスは、classBegin で実行する独自のアクションを追加する前に、基底クラスのメソッドを呼び出す必要があります。

[virtual] QRectF QQuickItem::clipRect() const

ビューポートが存在し、かつItemObservesViewport フラグが設定されている場合、viewportItem()で現在表示されているこのアイテム内の矩形領域を返します。それ以外の場合は、このアイテム自身の座標系における範囲、すなわち0, 0 からwidth()およびheight()までの矩形を返します。 これは、clip がtrue の場合に可視のままにされることを意図した領域です。また、updatePaintNode()内で、シーングラフに追加されるグラフィックスを制限するためにも使用できます。

たとえば、アプリケーションのウィンドウの一部のみを占める Flickable に、大きな図や大きなテキスト文書が表示される場合があります。その場合、Flickable がビューポート項目となり、カスタムコンテンツレンダリング項目は、現在表示されている領域の外側にあるシーングラフノードを省略することを選択できます。ItemObservesViewport フラグが設定されている場合、この領域は、ユーザーがFlickable内のコンテンツをスクロールするたびに変化します。

ネストされたビューポート項目の場合、clipRect() は、ItemIsViewport フラグが設定されているすべての祖先のboundingRectの交差部分であり、この項目の座標系にマッピングされます。

boundingRect()も参照してください 。

[override virtual protected] void QQuickItem::componentComplete()

QQmlParserStatus::componentComplete() を再実装します。

派生クラスは、componentComplete で実行する独自のアクションを追加する前に、基底クラスのメソッドを呼び出す必要があります。

[virtual invokable] bool QQuickItem::contains(const QPointF &point) const

このアイテムにローカル座標系のpoint が含まれている場合はtrue を返し、そうでない場合はfalse を返します。

この関数は、カスタム形状のアイテムにおける点との衝突処理を行うためにオーバーライドできます。デフォルトの実装では、containmentMask() が設定されている場合はその内部に点が含まれているか、そうでない場合はバウンディングボックスの内部に含まれているかをチェックします。

注:この メソッドは 、イベント配信中に各QEventPoint のヒットテストに使用されるため、実装は可能な限り軽量に保つ必要があります。

注:この関数は 、メタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

QCursor QQuickItem::cursor() const

この項目のカーソル形状を返します。

オーバーライドカーソルが設定されていない限り、マウスカーソルがこのアイテムの上に移動した際に、この形状になります。有用な形状の例については、list of predefined cursor objects を参照してください。

カーソル形状が設定されていない場合、この関数はQt::ArrowCursor の形状を持つカーソルを返しますが、重なり合うアイテムに有効なカーソルが設定されている場合は、別のカーソル形状が表示されることがあります。

setCursor() およびunsetCursor()も参照してください 。

[virtual protected] void QQuickItem::dragEnterEvent(QDragEnterEvent *event)

このイベントハンドラは、サブクラスで再実装することで、アイテムに対するドラッグ・エンターイベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

ドラッグ&ドロップイベントは、そのアイテムに対してItemAcceptsDrops フラグが設定されている場合にのみ発生します。

このイベントはデフォルトで受諾されるため、この関数を再実装する場合、明示的にイベントを受諾する必要はありません。イベントを受諾しない場合は、event->ignore() を呼び出してください。

「 Drag 」 および「ドラッグ&ドロップ」も参照してください 。

[virtual protected] void QQuickItem::dragLeaveEvent(QDragLeaveEvent *event)

このイベントハンドラは、サブクラスで再実装することで、アイテムに対するドラッグ・リーブイベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

ドラッグ&ドロップイベントは、このアイテムに対してItemAcceptsDrops フラグが設定されている場合にのみ提供されます。

このイベントはデフォルトで受諾されるため、この関数を再実装する場合、明示的にイベントを受諾する必要はありません。イベントを受諾しない場合は、event->ignore() を呼び出してください。

「 Drag 」 および「ドラッグ&ドロップ」も参照してください 。

[virtual protected] void QQuickItem::dragMoveEvent(QDragMoveEvent *event)

このイベントハンドラは、サブクラスで再実装することで、アイテムに対するドラッグ・移動イベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

ドラッグ&ドロップイベントは、このアイテムに対してItemAcceptsDrops フラグが設定されている場合にのみ提供されます。

イベントはデフォルトで受諾されるため、この関数を再実装する場合、明示的にイベントを受諾する必要はありません。イベントを受諾しない場合は、event->ignore() を呼び出してください。

「 Drag 」 および「ドラッグ&ドロップ」も参照してください 。

[virtual protected] void QQuickItem::dropEvent(QDropEvent *event)

このイベントハンドラは、サブクラスで再実装することで、アイテムのドロップイベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

ドラッグ&ドロップイベントは、このアイテムに対してItemAcceptsDrops フラグが設定されている場合にのみ提供されます。

このイベントはデフォルトで受け付けられるため、この関数を再実装する場合、明示的にイベントを受け付ける必要はありません。イベントを受け付けない場合は、event->ignore() を呼び出してください。

「 Drag 」 および「ドラッグ&ドロップ」も参照してください 。

[invokable, since 6.3] void QQuickItem::dumpItemTree() const

このアイテムを起点として、アイテムのビジュアルツリーに関する詳細情報を再帰的に出力します。

注: QObject::dumpObjectTree() も同様のツリーを出力しますが、 Qt Quick の「概念 - 視覚的な親」で説明されているように、アイテムのQObject::parent() はQQuickItem::parentItem() と異なる場合があります。両方のツリーを出力して、その違いを確認することができます。

注: 正確な出力形式は 、Qtの将来のバージョンで変更される可能性があります。

注:この関数は 、メタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

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

「デバッグ手法」およびGammaRay のQt Quick インスペクタも参照してください 。

[invokable, since 6.3] void QQuickItem::ensurePolished()

updatePolish() を呼び出します

これは、PolishEvent を受信するまで `implicitWidth ` や `implicitHeight ` の計算を遅延させるレイアウト(またはポジショナー)などのアイテムにおいて有用です。

通常、例えばレイアウトに子アイテムが追加または削除された場合、暗黙的なサイズは直ちに計算されません(これは最適化のためです)。 場合によっては、子アイテムが追加された直後にレイアウトの暗黙的なサイズを照会したいこともあるでしょう。その場合は、暗黙的なサイズを照会する直前にこの関数を使用してください。

注:この関数は 、メタオブジェクトシステムおよび QML から呼び出すことができます。Q_INVOKABLE を参照してください。

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

updatePolish() およびpolish()も参照してください 。

[override virtual protected] bool QQuickItem::event(QEvent *ev)

QObject::event(QEvent *e) の再実装です。

bool QQuickItem::filtersChildMouseEvents() const

このアイテムの子要素を対象とするポインタイベントを、このアイテムを通じてフィルタリングすべきかどうかを返します。

このアイテムと子アイテムの両方が `acceptTouchEvents()`true を設定している場合、タッチ操作が発生すると、このアイテムがタッチイベントをフィルタリングします。しかし、このアイテムまたは子アイテムのいずれかがタッチイベントを処理できない場合、合成されたマウスイベントを引数として `childMouseEventFilter()` が呼び出されます。

setFiltersChildMouseEvents() およびchildMouseEventFilter()も参照してください 。

QQuickItem::Flags QQuickItem::flags() const

このアイテムのフラグを返します。

setFlags() およびsetFlag()も参照してください 。

[virtual protected] void QQuickItem::focusInEvent(QFocusEvent *event)

このイベントハンドラは、サブクラスで再実装して、項目のフォーカスインイベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

このイベントはデフォルトで受け入れられるため、この関数を再実装する場合、明示的にイベントを受け入れる必要はありません。イベントを受け入れない場合は、event->ignore() を呼び出してください。

この関数を再実装する場合は、基底クラスの実装を呼び出す必要があります。

[virtual protected] void QQuickItem::focusOutEvent(QFocusEvent *event)

このイベントハンドラは、サブクラスで再実装することで、項目のフォーカスアウトイベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

このイベントはデフォルトで受諾されるため、この関数を再実装する場合、明示的にイベントを受諾する必要はありません。イベントを受諾しない場合は、event->ignore() を呼び出してください。

[invokable] void QQuickItem::forceActiveFocus()

その項目にアクティブなフォーカスを設定します。

このメソッドは、アイテムにフォーカスを設定し、オブジェクト階層内のすべての親オブジェクトであるFocusScope オブジェクトに対してもfocus が呼び出されるようにします。

フォーカス変更の理由は `Qt::OtherFocusReason` となります。フォーカス変更をより適切に処理するために、オーバーロードされたメソッドを使用してフォーカス変更の理由を指定してください。

注:この関数は 、メタオブジェクトシステムを介して、およびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

「activeFocus」も参照してください 。

[invokable] void QQuickItem::forceActiveFocus(Qt::FocusReason reason)

指定されたreason を持つアイテムにアクティブなフォーカスを設定します。

このメソッドは、そのアイテムにフォーカスを設定し、オブジェクト階層内のすべての親FocusScope オブジェクトにもfocus が設定されるようにします。

注:この関数は 、メタオブジェクトシステムを介して、および QML から呼び出すことができます。Q_INVOKABLE を参照してください。

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

activeFocus およびQt::FocusReasonも参照してください 。

[virtual protected, since 6.0] void QQuickItem::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)

この関数は、oldGeometry からnewGeometry への、このアイテムのジオメトリの変更を処理するために呼び出されます。2つのジオメトリが同一の場合は、何も行いません。

派生クラスは、その実装内で基底クラスのメソッドを呼び出す必要があります。

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

QSharedPointer<QQuickItemGrabResult> QQuickItem::grabToImage(const QSize &targetSize = QSize())

アイテムをメモリ内のイメージに取り込みます。

取得処理は非同期で行われ、取得が完了するとQQuickItemGrabResult::ready()シグナルが発信されます。

targetSize を使用して、ターゲット画像のサイズを指定します。デフォルトでは、結果は item と同じサイズになります。

取得を開始できなかった場合、この関数は `null` を返します。

注:この関数は 、アイテムをオフスクリーンサーフェスにレンダリングし、そのサーフェスをGPUのメモリからCPUのメモリにコピーするため、処理負荷がかなり高くなる可能性があります。「ライブ」プレビューを行う場合は、layers またはShaderEffectSource を使用してください。

関連項目: QQuickWindow::grabWindow()。

[protected] bool QQuickItem::heightValid() const

height プロパティが明示的に設定されているかどうかを返します。

[virtual protected] void QQuickItem::hoverEnterEvent(QHoverEvent *event)

このイベントハンドラは、サブクラスで再実装することで、アイテムのホバー・エンターイベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

ホバーイベントは、acceptHoverEvents() が true の場合にのみ提供されます。

このイベントはデフォルトで受け入れられるため、この関数を再実装する場合、明示的にイベントを受け入れる必要はありません。イベントを受け入れない場合は、event->ignore() を呼び出してください。

[virtual protected] void QQuickItem::hoverLeaveEvent(QHoverEvent *event)

このイベントハンドラは、サブクラスで再実装することで、アイテムのホバー離脱イベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

ホバーイベントは、acceptHoverEvents()がtrueの場合にのみ提供されます。

このイベントはデフォルトで受け付けられるため、この関数を再実装する場合、明示的にイベントを受け付ける必要はありません。イベントを受け付けない場合は、event->ignore() を呼び出してください。

[virtual protected] void QQuickItem::hoverMoveEvent(QHoverEvent *event)

このイベントハンドラは、サブクラスで再実装することで、アイテムのホバー・移動イベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

ホバーイベントは、acceptHoverEvents()がtrueの場合にのみ提供されます。

このイベントはデフォルトで受け入れられるため、この関数を再実装する場合、明示的にイベントを受け入れる必要はありません。イベントを受け入れない場合は、event->ignore() を呼び出してください。

qreal QQuickItem::implicitWidth() const

コンテンツを決定する他のプロパティによって暗黙的に指定される項目の幅を返します。

注: implicitWidth プロパティのゲッター 関数です。

関連項目: setImplicitWidth()。

[virtual protected] void QQuickItem::inputMethodEvent(QInputMethodEvent *event)

このイベントハンドラは、サブクラスで再実装することで、アイテムに対する入力メソッドイベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

デフォルトではイベントは受け入れられるため、この関数を再実装する場合、明示的にイベントを受け入れる必要はありません。イベントを受け入れない場合は、event->ignore() を呼び出してください。

[virtual] QVariant QQuickItem::inputMethodQuery(Qt::InputMethodQuery query) const

このメソッドは、入力項目にのみ適用されます。

この項目が入力項目である場合、このメソッドを再実装して、指定されたquery に対応する入力メソッドフラグを返すようにする必要があります。

QWidget::inputMethodQuery()も参照してください 。

bool QQuickItem::isAncestorOf(const QQuickItem *child) const

このアイテムが `child ` の祖先である場合(つまり、このアイテムが `child` の親であるか、あるいは `child` の親のいずれかの祖先である場合)、true を返します。

parentItem()も参照してください 。

[protected] bool QQuickItem::isComponentComplete() const

QMLコンポーネントの構築が完了していればtrueを返し、そうでない場合はfalseを返します。

コンポーネントの生成が完了するまで、一部の処理を遅延させたい場合がよくあります。

componentComplete()も参照してください 。

bool QQuickItem::isFocusScope() const

このアイテムがフォーカススコープである場合は true を返し、そうでない場合は false を返します。

[virtual] bool QQuickItem::isTextureProvider() const

この項目がテクスチャプロバイダである場合、true を返します。デフォルトの実装では false を返します。

この関数は、どのスレッドからでも呼び出すことができます。

[virtual protected] void QQuickItem::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value)

このアイテムに対してchange が発生した際に呼び出されます。

value 該当する場合、変更に関する追加情報が含まれます。

サブクラスでこのメソッドを再実装する場合は、

QQuickItem::itemChange(change, value);

通常、実装の最後に呼び出し、windowChanged() シグナルが確実に発火するようにしてください。

bool QQuickItem::keepMouseGrab() const

マウス入力をこのアイテムに限定すべきかどうかを返します。

setKeepMouseGrab()、QEvent::accept()、およびQEvent::ignore()も参照してください 。

bool QQuickItem::keepTouchGrab() const

このアイテムによって取得されたタッチポイントが、このアイテムにのみ割り当てられたままであるべきかどうかを返します。

setKeepTouchGrab()、keepMouseGrab()、QEvent::accept()、およびQEvent::ignore()も参照してください 。

[virtual protected] void QQuickItem::keyPressEvent(QKeyEvent *event)

このイベントハンドラは、サブクラスで再実装して、アイテムのキー押下イベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

デフォルトではイベントは受け入れられるため、この関数を再実装する場合、明示的にイベントを受け入れる必要はありません。イベントを受け入れない場合は、event->ignore() を呼び出してください。

[virtual protected] void QQuickItem::keyReleaseEvent(QKeyEvent *event)

このイベントハンドラは、サブクラスで再実装することで、アイテムのキー離しイベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

このイベントはデフォルトで受け入れられるため、この関数を再実装する場合、明示的にイベントを受け入れる必要はありません。イベントを受け入れない場合は、event->ignore() を呼び出してください。

[invokable] QPointF QQuickItem::mapFromGlobal(const QPointF &point) const

グローバル画面座標系における指定されたpoint を、このアイテムの座標系内の対応する点にマッピングし、マッピングされた座標を返します。

マッピングには、アイテムの以下のプロパティが使用されます:x 、y 、scale 、rotation 、transformOrigin 、およびtransform 。

アイテムが異なるシーンに属している場合、マッピングには2つのシーン間の相対位置が含まれます。

たとえば、Qt Quick コンポーネントにポップアップを追加する際に、これが役立つ場合があります。

注:ウィンドウ の位置決めはウィンドウマネージャによって行われ、この値はあくまでヒントとして扱われます。そのため、結果として得られるウィンドウの位置は、期待した位置と異なる場合があります。

注: このアイテムがサブシーン内にある場合 (例えば、3DModel オブジェクトにマッピングされている場合など)、UV マッピングはこの変換に組み込まれるため、point が実際にこのアイテムの境界内にある限り、画面座標からこのアイテムの座標へと確実に変換されます。他のマッピング関数は、まだそのようには動作しません。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

Qt Quick の「概念 - 視覚座標」も参照してください 。

[invokable] QPointF QQuickItem::mapFromItem(const QQuickItem *item, const QPointF &point) const

item の座標系における指定されたpoint を、このアイテムの座標系内の同等の点にマッピングし、マッピングされた座標を返します。

マッピングには、アイテムの以下のプロパティが使用されます:x 、y 、scale 、rotation 、transformOrigin 、およびtransform 。

アイテムが異なるシーンに属している場合、マッピングには2つのシーン間の相対的な位置情報が含まれます。

item がnullptr の場合、これはシーンの座標系からのpoint をマッピングします。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

Qt Quick の「概念 - 視覚座標」も参照してください 。

QPointF QQuickItem::mapFromScene(const QPointF &point) const

シーンの座標系における指定されたpoint を、このアイテムの座標系内の対応する点にマッピングし、マッピングされた座標を返します。

マッピングには、アイテムの以下のプロパティが使用されます:x 、y 、scale 、rotation 、transformOrigin 、およびtransform 。

アイテムが異なるシーンに属している場合、マッピングには2つのシーン間の相対位置が含まれます。

Qt Quick の「概念 - 視覚座標」も参照してください 。

QRectF QQuickItem::mapRectFromItem(const QQuickItem *item, const QRectF &rect) const

item の座標系における指定されたrect を、この項目の座標系内の対応する矩形領域にマッピングし、マッピングされた矩形の値を返します。

マッピングには、アイテムの以下のプロパティが使用されます:x 、y 、scale 、rotation 、transformOrigin 、およびtransform 。

アイテムが異なるシーンに属している場合、マッピングには2つのシーン間の相対的な位置情報が含まれます。

item がnullptr の場合、これはシーンの座標系からのrect をマッピングします。

「Qt Quick 」の「概念 - 視覚座標」も参照してください 。

QRectF QQuickItem::mapRectFromScene(const QRectF &rect) const

シーンの座標系における指定されたrect を、このアイテムの座標系内の対応する矩形領域にマッピングし、マッピングされた矩形の値を返します。

マッピングには、アイテムの以下のプロパティが使用されます:x 、y 、scale 、rotation 、transformOrigin 、およびtransform 。

アイテムが異なるシーンに属している場合、マッピングには2つのシーン間の相対位置が含まれます。

Qt Quick の「概念 - 視覚座標」も参照してください 。

QRectF QQuickItem::mapRectToItem(const QQuickItem *item, const QRectF &rect) const

この項目の座標系における指定されたrect を、item の座標系内の同等の矩形領域にマッピングし、マッピングされた矩形の値を返します。

マッピングには、アイテムの以下のプロパティが使用されます:x 、y 、scale 、rotation 、transformOrigin 、およびtransform 。

アイテムが異なるシーンに属している場合、マッピングには2つのシーン間の相対的な位置情報が含まれます。

item がnullptr の場合、rect はシーンの座標系にマッピングされます。

「Qt Quick 」の「概念 - 視覚座標」も参照してください 。

QRectF QQuickItem::mapRectToScene(const QRectF &rect) const

このアイテムの座標系における指定されたrect を、シーンの座標系内の対応する矩形領域にマッピングし、マッピングされた矩形の値を返します。

マッピングには、アイテムの以下のプロパティが使用されます:x 、y 、scale 、rotation 、transformOrigin 、およびtransform 。

アイテムが異なるシーンに属している場合、マッピングには2つのシーン間の相対位置が含まれます。

Qt Quick の「概念 - 視覚座標」も参照してください 。

[invokable] QPointF QQuickItem::mapToGlobal(const QPointF &point) const

この項目の座標系における指定されたpoint を、グローバル画面座標系内の対応する点にマッピングし、マッピングされた座標を返します。

マッピングには、アイテムの以下のプロパティが使用されます:x 、y 、scale 、rotation 、transformOrigin 、およびtransform 。

アイテムが異なるシーンに属している場合、マッピングには2つのシーン間の相対的な位置情報が含まれます。

たとえば、Qt Quick コンポーネントにポップアップを追加する際に、これが役立つ場合があります。

注:ウィンドウの 配置はウィンドウマネージャによって行われ、この値はあくまでヒントとして扱われます。そのため、結果として得られるウィンドウの位置は、期待した位置と異なる場合があります。

注:この関数は 、メタオブジェクトシステムおよび QML から呼び出すことができます。Q_INVOKABLE を参照してください。

関連項目 : Qt Quick の「概念 - 視覚座標」を参照してください 。

[invokable] QPointF QQuickItem::mapToItem(const QQuickItem *item, const QPointF &point) const

この項目の座標系における指定されたpoint を、item の座標系内の対応する点にマッピングし、マッピングされた座標を返します。

マッピングには、アイテムの以下のプロパティが使用されます:x 、y 、scale 、rotation 、transformOrigin 、およびtransform 。

アイテムが異なるシーンに属している場合、マッピングには2つのシーン間の相対的な位置情報が含まれます。

item がnullptr の場合、これはpoint をシーンの座標系にマッピングします。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

Qt Quick の「概念 - 視覚座標」も参照してください 。

QPointF QQuickItem::mapToScene(const QPointF &point) const

この項目の座標系における指定された「point 」を、シーンの座標系内の対応する点にマッピングし、マッピングされた座標を返します。

マッピングには、アイテムの以下のプロパティが使用されます:x 、y 、scale 、rotation 、transformOrigin 、およびtransform 。

アイテムが異なるシーンに属している場合、マッピングには2つのシーン間の相対的な位置情報が含まれます。

Qt Quick の「概念 - 視覚座標」も参照してください 。

[virtual protected] void QQuickItem::mouseDoubleClickEvent(QMouseEvent *event)

このイベントハンドラは、サブクラスで再実装することで、項目のマウスダブルクリックイベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

このイベントはデフォルトで受け付けられるため、この関数を再実装する場合、明示的にイベントを受け付ける必要はありません。イベントを受け付けない場合は、event->ignore() を呼び出してください。

[virtual protected] void QQuickItem::mouseMoveEvent(QMouseEvent *event)

このイベントハンドラは、サブクラスで再実装することで、アイテムのマウス移動イベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

マウス移動イベントを受け取るには、先行するマウス押下イベントを受け入れる必要があり(例えば、mousePressEvent() をオーバーライドするなど)、acceptedMouseButtons() は該当するマウスボタンを返す必要があります。

このイベントはデフォルトで受信されるため、この関数を再実装する場合、明示的にイベントを受信する必要はありません。イベントを受信しない場合は、event->ignore() を呼び出してください。

[virtual protected] void QQuickItem::mousePressEvent(QMouseEvent *event)

このイベントハンドラは、サブクラスで再実装することで、アイテムのマウス押下イベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

マウス押下イベントを受け取るには、acceptedMouseButtons() が該当するマウスボタンを返す必要があります。

このイベントはデフォルトで受け入れられるため、この関数を再実装する場合、明示的にイベントを受け入れる必要はありません。イベントを受け入れない場合は、event->ignore() を呼び出してください。

[virtual protected] void QQuickItem::mouseReleaseEvent(QMouseEvent *event)

このイベントハンドラは、サブクラスで再実装することで、アイテムのマウス離しイベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

マウス解放イベントを受信するには、先行するマウス押下イベントを受け入れる必要があり(たとえば、mousePressEvent() をオーバーライドするなど)、acceptedMouseButtons() は該当するマウスボタンを返す必要があります。

このイベントはデフォルトで受信されるため、この関数を再実装する場合、明示的にイベントを受信する必要はありません。イベントを受信しない場合は、event->ignore() を呼び出してください。

[virtual protected] void QQuickItem::mouseUngrabEvent()

このイベントハンドラは、サブクラスで再実装することで、このアイテムでマウスの選択解除イベントが発生した際に通知を受けられるようにすることができます。

[invokable] QQuickItem *QQuickItem::nextItemInFocusChain(bool forward = true)

フォーカスチェーン内で、この項目の隣にある項目を返します。forward が `true` の場合、または指定されていない場合は、前方方向の次の項目が返されます。forward が `false` の場合、後方方向の次の項目が返されます。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

void QQuickItem::polish()

このアイテムに対してポーランド語のイベントをスケジュールします。

シーングラフがこのリクエストを処理する際、このアイテムに対してupdatePolish()を呼び出します。

updatePolish()、QQuickTest::qIsPolishScheduled()、およびensurePolished()も参照してください 。

[virtual protected] void QQuickItem::releaseResources()

この関数は、QQuickItem::updatePaintNode() から返されたノードによってまだ管理されていないグラフィックリソースを、アイテムが解放すべき場合に呼び出されます。

これは、アイテムが、それまでレンダリングを行っていたウィンドウから削除されようとする際に発生します。この関数が呼び出される時点で、アイテムには必ずwindow が存在することが保証されています。

この関数はGUIスレッド上で呼び出され、レンダリングスレッド(使用されている場合)の状態は不明です。オブジェクトを直接削除するのではなく、QQuickWindow::scheduleRenderJob() を使用してクリーンアップをスケジュールする必要があります。

Graphics Resource Handlingも参照してください 。

QQuickItem *QQuickItem::scopedFocusItem() const

このアイテムがフォーカススコープである場合、フォーカスチェーン内で現在フォーカスが当てられているアイテムを返します。

このアイテムがフォーカススコープでない場合は、nullptr を返します。

void QQuickItem::setAcceptHoverEvents(bool enabled)

enabled が true の場合、このアイテムはホバーイベントを受け付けるように設定されます。そうでない場合、このアイテムはホバーイベントを受け付けません。

acceptHoverEvents()も参照してください 。

void QQuickItem::setAcceptTouchEvents(bool enabled)

enabled が true の場合、このアイテムはタッチイベントを受け付けるように設定されます。そうでない場合、このアイテムはタッチイベントを受け付けません。

acceptTouchEvents()も参照してください 。

void QQuickItem::setAcceptedMouseButtons(Qt::MouseButtons buttons)

このアイテムが受け付けるマウスボタンを `buttons` に設定します。

注: Qt5では 、setAcceptedMouseButtons()を呼び出すと、アイテムはマウスイベントだけでなくタッチイベントも暗黙的に受信していましたが、それらを登録するにはsetAcceptTouchEvents()を呼び出すことが推奨されていました。Qt 6では、引き続きそれらを受信するにはsetAcceptTouchEvents()を呼び出す必要があります。

acceptedMouseButtons()も参照してください 。

void QQuickItem::setCursor(const QCursor &cursor)

このアイテムのcursor シェイプを設定します。

cursor() およびunsetCursor()も参照してください 。

void QQuickItem::setFiltersChildMouseEvents(bool filter)

このアイテムの子要素を対象とするポインタイベントを、このアイテムを通じてフィルタリングするかどうかを設定します。

filter がtrueの場合、子アイテムに対してポインタイベントが発生した際にchildMouseEventFilter()が呼び出されます。

filtersChildMouseEvents()も参照してください 。

void QQuickItem::setFlag(QQuickItem::Flag flag, bool enabled = true)

enabled がtrueの場合、このアイテムに対して指定されたflag を有効にします。enabled がfalseの場合、このフラグは無効になります。

これらはアイテムに対してさまざまなヒントを提供します。例えば、ItemClipsChildrenToShape フラグは、このアイテムのすべての子要素を、アイテム領域内に収まるようにクリップすべきであることを示します。

void QQuickItem::setFlags(QQuickItem::Flags flags)

この項目に対して、指定されたflags を有効にします。

「 flags()」および「setFlag()」も参照してください 。

void QQuickItem::setFocusPolicy(Qt::FocusPolicy policy)

この項目のフォーカスポリシーを「policy 」に設定します。

注: プロパティ `focusPolicy`のセッター 関数です。

focusPolicy()も参照してください 。

void QQuickItem::setKeepMouseGrab(bool keep)

マウス入力をこのアイテムに独占的に割り当てるかどうかを設定します。

これは、あらかじめ定義されたジェスチャーの後にマウスの操作を捕捉して保持したいアイテムに役立ちます。例えば、マウスの水平方向の動きに関心のあるアイテムは、閾値を超えた時点でkeepMouseGrab をtrueに設定することができます。keepMouseGrab がtrueに設定されると、フィルタリング対象のアイテムはマウスイベントに反応しなくなります。

keep がfalseの場合、フィルタリングアイテムがグラブを奪うことがあります。例えば、Flickable は、ユーザーがビューポートの移動を開始したことを検出した場合、マウスのグラブを奪おうとすることがあります。

「keepMouseGrab()」も参照してください 。

void QQuickItem::setKeepTouchGrab(bool keep)

このアイテムによってグラブされたタッチポイントを、このアイテムのみが保持し続けるかどうかを設定します。

これは、あらかじめ定義されたジェスチャーの後に特定のタッチポイントを取得して保持したいアイテムに役立ちます。例えば、水平方向のタッチポイントの動きに関心のあるアイテムは、閾値を超えた時点で setKeepTouchGrab を true に設定できます。setKeepTouchGrab が true に設定されると、フィルタリングアイテムは関連するタッチポイントに反応しなくなります。

keep がfalseの場合、フィルタリングアイテムがタッチポイントの保持を奪う可能性があります。例えば、Flickable は、ユーザーがビューポートを移動し始めたことを検出した場合、タッチポイントの保持を奪おうと試みる場合があります。

keepTouchGrab() およびsetKeepMouseGrab()も参照してください 。

void QQuickItem::setSize(const QSizeF &size)

項目のサイズをsize に設定します。このメソッドは、幅と高さに対する既存のバインディングを保持します。したがって、バインディングの再実行を引き起こすような変更があった場合、設定された値は上書きされます。

size 、setWidth 、およびsetHeightも参照してください 。

QSizeF QQuickItem::size() const

項目のサイズを返します。

setSize 、width 、およびheightも参照してください 。

void QQuickItem::stackAfter(const QQuickItem *sibling)

この項目を、子要素のリスト内で指定された兄弟要素の直後の位置に移動します。子要素の順序は、視覚的な重ね合わせ順序と、タブフォーカスによるナビゲーション順序の両方に影響します。

両方の項目のz値が同じであると仮定すると、これにより「sibling 」がこの項目の下にレンダリングされます。

両方のアイテムで `activeFocusOnTab ` が `true` に設定されている場合、タブフォーカスの順序も変更され、`sibling ` がこのアイテムよりも先にフォーカスを受け取ることになります。

指定されたsibling は、このアイテムの兄弟要素でなければなりません。つまり、両者は同じ直系のparent を持つ必要があります。

「Qt Quick 」の「概念 - 視覚的な親」も参照してください 。

void QQuickItem::stackBefore(const QQuickItem *sibling)

この項目を、子要素のリスト内で指定された同階層の項目の直前の位置に移動します。子要素の順序は、視覚的な重ね順とタブフォーカスによるナビゲーション順序の両方に影響します。

両アイテムのz値が同じ場合、これによりsibling がこのアイテムの上方にレンダリングされます。

両方のアイテムで `activeFocusOnTab ` が `true` に設定されている場合、タブフォーカスの順序も変更され、`sibling ` がこのアイテムの後にフォーカスを受け取ることになります。

指定されたsibling は、このアイテムの兄弟要素でなければなりません。つまり、両者は同じ直接のparent を持つ必要があります。

「Qt Quick 」の「概念 - 視覚的な親」も参照してください 。

[virtual] QSGTextureProvider *QQuickItem::textureProvider() const

アイテムのテクスチャプロバイダを返します。デフォルトの実装では、nullptr を返します。

この関数は、レンダリングスレッド上でのみ呼び出すことができます。

[virtual protected] void QQuickItem::touchEvent(QTouchEvent *event)

このイベントハンドラは、サブクラスで再実装して、アイテムのタッチイベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

デフォルトではイベントは受け入れられるため、この関数を再実装する場合、明示的にイベントを受け入れる必要はありません。イベントを受け入れない場合は、event->ignore() を呼び出してください。

[virtual protected] void QQuickItem::touchUngrabEvent()

このイベントハンドラは、サブクラスで再実装することで、このアイテムでタッチの解除イベントが発生した際に通知を受け取るようにすることができます。

void QQuickItem::unsetCursor()

この項目のカーソル形状をクリアします。

cursor() およびsetCursor()も参照してください 。

[slot] void QQuickItem::update()

このアイテムに対して、updatePaintNode() の呼び出しをスケジュールします。

アイテムがQQuickWindow に表示されている場合、QQuickItem::updatePaintNode() の呼び出しは常に実行されます。

QQuickItem::ItemHasContents を指定しているアイテムのみが、QQuickItem::update() を呼び出すことができます。

[protected] void QQuickItem::updateInputMethod(Qt::InputMethodQueries queries = Qt::ImQueryInput)

必要に応じて、クエリ値が更新されたことを入力メソッドに通知してください。queries は、変更された属性を示しています。

[virtual protected] QSGNode *QQuickItem::updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *updatePaintNodeData)

アイテムの状態をシーングラフと同期させるタイミングになると、レンダリングスレッドで呼び出されます。

ユーザーがアイテムに対してQQuickItem::ItemHasContents フラグを設定している場合、この関数はQQuickItem::update()の結果として呼び出されます。

この関数は、このアイテムのシーングラフサブツリーのルートを返す必要があります。ほとんどの実装では、このアイテムの視覚的表現を含む単一のQSGGeometryNode を返します。oldNode は、この関数が前回呼び出された際に返されたノードです。updatePaintNodeData は、このQQuickItem に関連付けられたQSGTransformNode へのポインタを提供します。

QSGNode *MyItem::updatePaintNode(QSGNode *node, UpdatePaintNodeData *)
{
    QSGSimpleRectNode *n = static_cast<QSGSimpleRectNode *>(node);
    if (!n) {
        n = new QSGSimpleRectNode();
        n->setColor(Qt::red);
    }
    n->setRect(boundingRect());
    return n;
}

この関数の実行中はメインスレッドがブロックされるため、メインスレッドからQQuickItem インスタンスやその他のオブジェクトの値を読み取っても安全です。

QSGNode::markDirty() の呼び出しやノードの追加・削除など、QQuickItem::updatePaintNode() の呼び出しによってシーングラフに実際の変更が生じない場合、視覚的な結果は同一であるため、基盤となる実装ではシーンを再度レンダリングしないことを決定する場合があります。

警告: グラフィックス操作やシーングラフとのやり取りは、主に QQuickItem::updatePaintNode() の呼び出し中に、レンダリングスレッド上でのみ行われることが極めて重要です 。経験則として、QQuickItem::updatePaintNode() 関数内では「QSG」という接頭辞を持つクラスのみを使用することを推奨します。

警告: この関数はレンダリングスレッド上で 呼び出されます。つまり、この関数内で作成される QObject やスレッドローカルストレージはすべてレンダリングスレッドに紐付けられるため、この関数内でレンダリング以外の処理を行う場合は注意が必要です。同様に、シグナルもレンダリングスレッド上で発信されるため、多くの場合、キュー付き接続を介して配信されます。

注: QSGという接頭辞を持つすべてのクラスは 、シーングラフのレンダリングスレッドでのみ使用する必要があります。詳細については、「シーングラフとレンダリング」を参照してください。

関連項目: QSGMaterial 、QSGGeometryNode 、QSGGeometry 、QSGFlatColorMaterial 、QSGTextureMaterial 、QSGNode::markDirty()、およびGraphics Resource Handling 。

[virtual protected] void QQuickItem::updatePolish()

この関数は、このアイテムに必要なレイアウト処理をすべて実行する必要があります。

polish() が呼び出されると、シーングラフはこのアイテムに対してポリッシュイベントをスケジュールします。シーングラフがこのアイテムをレンダリングする準備が整うと、次のフレームをレンダリングする前に updatePolish() を呼び出し、必要なアイテムのレイアウト処理を行います。

ensurePolished()も参照してください 。

QQuickItem *QQuickItem::viewportItem() const

ItemObservesViewport フラグが設定されている場合、ItemIsViewport フラグが設定されている最も近い親要素を返します。このフラグが設定されていない場合、または他のビューポートアイテムが見つからない場合は、ウィンドウのcontentItemを返します。

ビューポート項目が存在せず、かつその項目がウィンドウに表示されていない場合にのみ、nullptr を返します。

clipRect()も参照してください 。

[virtual protected] void QQuickItem::wheelEvent(QWheelEvent *event)

このイベントハンドラは、サブクラスで再実装することで、アイテムに対するホイールイベントを受け取ることができます。イベント情報は、event パラメータによって提供されます。

デフォルトではイベントは受け入れられるため、この関数を再実装する場合、明示的にイベントを受け入れる必要はありません。イベントを受け入れない場合は、event->ignore() を呼び出してください。

[protected] bool QQuickItem::widthValid() const

width プロパティが明示的に設定されているかどうかを返します。

QQuickWindow *QQuickItem::window() const

このアイテムがレンダリングされるウィンドウを返します。

アイテムは、シーンに割り当てられるまではウィンドウを持ちません。windowChanged() シグナルは、アイテムがシーンに追加されたときと、シーンから削除されたときの両方で通知を行います。

[signal] void QQuickItem::windowChanged(QQuickWindow *window)

この信号は、アイテムのwindow が変更されたときに発せられます。

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