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 |
| 継承元: |
パブリック型
| 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::ItemClipsChildrenToShape | 0x01 | このアイテムは、子要素が本アイテムの境界内でのみレンダリングされるように、子要素を視覚的にクリップする必要があることを示します。 |
QQuickItem::ItemAcceptsInputMethod | 0x02 | このアイテムがテキスト入力方式をサポートしていることを示します。 |
QQuickItem::ItemIsFocusScope | 0x04 | このアイテムがフォーカススコープであることを示します。詳細については、『Qt Quick 』の「キーボードフォーカス」を参照してください。 |
QQuickItem::ItemHasContents | 0x08 | このアイテムには視覚的なコンテンツがあり、シーングラフによってレンダリングされる必要があることを示します。 |
QQuickItem::ItemAcceptsDrops | 0x10 | このアイテムがドラッグ&ドロップイベントを受け付けることを示します。 |
QQuickItem::ItemIsViewport | 0x20 | このアイテムが子要素のビューポートを定義していることを示します。 |
QQuickItem::ItemObservesViewport | 0x40 | 任意の祖先アイテムで ItemIsViewport フラグが設定されている場合、そのアイテムはビューポートの境界を知りたいことを示します。 |
Flags 型は、QFlags<Flag> の typedef です。Flag 値の論理和(OR)の組み合わせを格納します。
setFlag()、setFlags()、およびflags()も参照してください 。
enum QQuickItem::ItemChange
QQuickItem::itemChange() と組み合わせて使用し、特定の種類の変更をアイテムに通知します。
| 定数 | 値 | 説明 |
|---|---|---|
QQuickItem::ItemChildAddedChange | 0 | 子要素が追加されました。ItemChangeData::item には、追加された子要素が含まれています。 |
QQuickItem::ItemChildRemovedChange | 1 | 子要素が削除されました。ItemChangeData::item には、削除された子要素が含まれています。 |
QQuickItem::ItemSceneChange | 2 | アイテムがシーンに追加または削除されました。シーンをレンダリングするQQuickWindow は、ItemChangeData::window を使用して指定されます。アイテムがシーンから削除された場合、windowパラメータはnullになります。 |
QQuickItem::ItemVisibleHasChanged | 3 | アイテムの可視状態が変更されました。ItemChangeData::boolValue には新しい可視状態が含まれています。 |
QQuickItem::ItemParentHasChanged | 4 | アイテムの親が変更されました。ItemChangeData::item には新しい親が格納されています。 |
QQuickItem::ItemOpacityHasChanged | 5 | アイテムの不透明度が変更されました。ItemChangeData::realValue には新しい不透明度が格納されています。 |
QQuickItem::ItemActiveFocusHasChanged | 6 | アイテムのフォーカスが変更されました。ItemChangeData::boolValue には、アイテムがフォーカスを持っているかどうかが格納されています。 |
QQuickItem::ItemRotationHasChanged | 7 | 項目の回転角度が変更されました。ItemChangeData::realValue には新しい回転角度が格納されます。 |
QQuickItem::ItemDevicePixelRatioHasChanged | 9 | アイテムが表示されている画面のデバイスピクセル比が変更されました。ItemChangedData::realValue には、新しいデバイスピクセル比が格納されています。 |
QQuickItem::ItemAntialiasingHasChanged | 8 | アンチエイリアシングが変更されました。現在の値(ブール値)は、QQuickItem::antialiasing にあります。 |
QQuickItem::ItemEnabledHasChanged | 10 | 項目の有効状態が変更されました。ItemChangeData::boolValue には新しい有効状態が格納されています。(Qt 5.10 以降) |
QQuickItem::ItemScaleHasChanged | 11 | アイテムのスケールが変更されました。ItemChangeData::realValue にはスケールが格納されています。(Qt 6.9以降) |
QQuickItem::ItemTransformHasChanged | 12 | 項目のトランスフォームが変更されました。これは、項目の位置、サイズ、回転、スケール、transformOrigin 、またはアタッチされたトランスフォームが変更された場合に発生します。ItemChangeData::item には、変更の原因となった項目が含まれます。(Qt 6.9以降) |
[since 6.12] enum QQuickItem::MutabilityGroup
この列挙型は、mutabilityGroup プロパティで使用できる事前定義済みの値を提供します。
| 定数 | 定数名 値 | 説明 |
|---|---|---|
QQuickItem::AutoMutabilityGroup | 0x0 | デフォルトの可変性グループ。 |
QQuickItem::StaticMutabilityGroup | 0x1 | アイテムがめったに、あるいはまったく更新されないことを示します。 |
QQuickItem::ModerateMutabilityGroup | 0x8 | その項目が中程度の頻度で更新されることを示します。 |
QQuickItem::DynamicMutabilityGroup | 0xf | その項目が頻繁に、あるいは毎フレーム更新されることを示します。 |
この列挙型は Qt 6.12 で導入されました。
enum QQuickItem::TransformOrigin
スケールなどの単純な変形が適用される中心点を制御します。
| 定数 | 値 | 説明 |
|---|---|---|
QQuickItem::TopLeft | 0 | アイテムの左上隅。 |
QQuickItem::Top | 1 | アイテムの上部の中心点。 |
QQuickItem::TopRight | 2 | 項目の右上の角。 |
QQuickItem::Left | 3 | 垂直方向の中央の最も左側の点。 |
QQuickItem::Center | 4 | アイテムの中心。 |
QQuickItem::Right | 5 | 垂直方向の中央の最も右側の点。 |
QQuickItem::BottomLeft | 6 | 項目の左下隅。 |
QQuickItem::Bottom | 7 | アイテムの下端の中心点。 |
QQuickItem::BottomRight | 8 | 項目の右下隅。 |
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 にアクティブなフォーカスを与えることを意味します。
アクセス関数:
| 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() |
アイテムの推奨幅または高さを指定します。
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 の範囲外の値はクリップされます。
| |
|
項目の不透明度を変更しても、その項目がユーザー入力イベントを受け取るかどうかには影響しません。(対照的に、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 度(つまり、回転なし)です。
|
アクセス関数:
| qreal | rotation() const |
| void | setRotation(qreal) |
scale : qreal
このプロパティには、この項目の拡大縮小率が格納されます。
スケール値が 1.0 未満の場合、アイテムはより小さいサイズでレンダリングされ、1.0 より大きい場合はより大きいサイズでレンダリングされます。負のスケール値を設定すると、アイテムはレンダリング時に左右反転されます。
デフォルト値は 1.0 です。
スケーリングはtransformOrigin から適用されます。
|
アクセス関数:
| qreal | scale() const |
| void | setScale(qreal) |
smooth : bool
そのアイテムをスムージング処理するかどうかを指定します
主に画像ベースのアイテムで、そのアイテムでスムースサンプリングを使用するかどうかを決定するために使用されます。スムースサンプリングは線形補間を使用して行われ、スムースでない場合は最近傍法を使用して行われます。
Qt Quick 2.0 では、このプロパティがパフォーマンスに与える影響はごくわずかです。
デフォルトでは、このプロパティはtrue に設定されています。
アクセス関数:
| bool | smooth() const |
| void | setSmooth(bool) |
state : QString
このプロパティには、アイテムの現在の状態名が格納されます。
アイテムがデフォルトの状態、つまり明示的な状態が設定されていない場合、このプロパティには空の文字列が格納されます。同様に、このプロパティを空の文字列に設定することで、アイテムをデフォルトの状態に戻すことができます。
アクセス関数:
| QString | state() const |
| void | setState(const QString &) |
transformOrigin : TransformOrigin
このプロパティは、拡大縮小や回転の変換が行われる原点を指定します。
下の画像に示すように、9つの変換原点が利用可能です。デフォルトの変換原点はItem.Center です。

アクセス関数:
| 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) |
[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 - 後に追加された子要素が先に追加された子要素の上に表示される:
|
| z の値が大きいものが上になる場合:
|
| 同じz - 子要素が親要素より上にある場合:
|
| 下側のz :
|
アクセス関数:
| 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.







