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, …, ItemEnabledHasChanged } |
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 |
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 | 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 | activeFocusChanged(bool) |
void | activeFocusOnTabChanged(bool) |
void | antialiasingChanged(bool) |
void | baselineOffsetChanged(qreal) |
void | childrenRectChanged(const QRectF &) |
void | clipChanged(bool) |
void | containmentMaskChanged() |
void | enabledChanged() |
void | focusChanged(bool) |
void | focusPolicyChanged(Qt::FocusPolicy) |
void | heightChanged() |
void | implicitHeightChanged() |
void | implicitWidthChanged() |
void | opacityChanged() |
void | parentChanged(QQuickItem *) |
void | rotationChanged() |
void | scaleChanged() |
void | smoothChanged(bool) |
void | stateChanged(const QString &) |
void | transformOriginChanged(QQuickItem::TransformOrigin) |
void | visibleChanged() |
void | widthChanged() |
void | windowChanged(QQuickWindow *window) |
void | xChanged() |
void | yChanged() |
void | zChanged() |
保護された関数
仮想ブール | childMouseEventFilter(QQuickItem*item, QEvent*event) |
仮想空白 | dragEnterEvent(QDragEnterEvent*event) |
仮想空白 | dragLeaveEvent(QDragLeaveEvent*event) |
仮想空白 | dragMoveEvent(QDragMoveEvent*event) |
仮想空白 | dropEvent(QDropEvent*event) |
仮想空白 | focusInEvent(QFocusEvent*event) |
仮想空白 | focusOutEvent(QFocusEvent*event) |
(since 6.0) 仮想空白 | geometryChange(const QRectF&newGeometry, const QRectF&oldGeometry) |
ブール | heightValid() const |
仮想空白 | hoverEnterEvent(QHoverEvent*event) |
仮想空白 | hoverLeaveEvent(QHoverEvent*event) |
仮想空白 | hoverMoveEvent(QHoverEvent*event) |
仮想空白 | inputMethodEvent(QInputMethodEvent*event) |
ブール | isComponentComplete() const |
仮想空白 | itemChange(QQuickItem::ItemChangechange, const QQuickItem::ItemChangeData&value) |
仮想 void | keyPressEvent(QKeyEvent*event) |
仮想空白 | keyReleaseEvent仮想 void (QKeyEvent*event) |
仮想 void | mouseDoubleClickEvent(QMouseEvent*event) |
仮想空白 | mouseMoveEvent(QMouseEvent*イベント) |
仮想空白 | mousePressEvent(QMouseEvent*event) |
仮想空白 | mouseReleaseEvent(QMouseEvent*event) |
仮想空白 | mouseUngrabEvent() |
仮想 void | releaseResources() |
仮想空白 | touchEvent(QTouchEvent*event) |
仮想空白 | touchUngrabEvent() |
void | updateInputMethod(Qt::InputMethodQueriesqueries= Qt::ImQueryInput) |
仮想 QSGNode *(QSGNode *oldNode) | updatePaintNode(QSGNode*oldNode, QQuickItem::UpdatePaintNodeData*updatePaintNodeData) |
仮想空白 | updatePolish() |
仮想空白 | wheelEvent(QWheelEvent*event) |
ブール | 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コンテキストがバインドされます。唯一の例外は、ネイティブOpenGLがQtの制御外で破棄された場合です。例えば、EGL_CONTEXT_LOST
。 - アイテムがシーンから取り除かれます。アイテムがシーンから取り除かれた場合、例えば、そのアイテムの親が
null
に設定されていたり、他のウィンドウのアイテムに設定されていたりする場合、QQuickItem::releaseResources() がGUIスレッドで呼び出されます。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
この enum 型は様々なアイテムのプロパティを指定するために使われます。
定数 | 値 | 説明 |
---|---|---|
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 | アンチエイリアスが変更されました。現在の (boolean) 値はQQuickItem::antialiasing にあります。 |
QQuickItem::ItemEnabledHasChanged | 10 | アイテムの有効状態が変更されました。ItemChangeData::boolValue に新しい有効状態が含まれています。(Qt 5.10 以降) |
enum QQuickItem::TransformOrigin
scale のような単純な変換が適用される点を制御する。
定数 | 値 | 説明 |
---|---|---|
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()も参照 。
プロパティのドキュメント
アイテムの好ましい幅または高さを定義する。
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 } }
注: Text またはTextEdit のimplicitWidth を使用し、幅を明示的に設定すると、テキストを 2 回レイアウトする必要があるため、パフォーマンスが低下します。
[read-only]
activeFocus : const 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 |
Notifier シグナル:
void | activeFocusChanged(bool) |
focus と Qt Quick のキーボード・フォーカスも参照してください 。
activeFocusOnTab : bool
このプロパティは、アイテムがタブフォーカスチェーンにあるかどうかを保持する。デフォルトでは、false
に設定されています。
注:{ QStyleHints::tabFocusBehavior}{tabFocusBehavior}は、さらに特定の種類のコントロールだけにフォーカスを制限することができる。これはmacOSの場合で、システム設定に基づいて特定のコントロールへのフォーカスが制限されることがあります。
アクセス関数:
bool | activeFocusOnTab() const |
void | setActiveFocusOnTab(bool) |
Notifierシグナル:
void | activeFocusOnTabChanged(bool) |
QStyleHints::tabFocusBehavior およびfocusPolicyも参照してください 。
antialiasing : bool
アイテムにアンチエイリアスをかけるかどうかを指定します。
アイテムがアンチエイリアスを使用するかどうかを決定するためにビジュアル要素によって使用されます。場合によっては、アンチエイリアスを使用したアイテムはより多くのメモリを必要とし、レンダリングに時間がかかる可能性があります(詳細はAntialiasingを参照してください)。
デフォルトはfalseですが、派生要素によってオーバーライドされる場合があります。
アクセス関数:
bool | antialiasing() const |
void | setAntialiasing(bool) |
void | resetAntialiasing() |
通知シグナル:
void | antialiasingChanged(bool) |
baselineOffset : qreal
アイテムのベースラインの位置をローカル座標で指定します。
Text アイテムのベースラインは、テキストが置かれている仮想線です。テキストを含むコントロールは通常、そのベースラインをテキストのベースラインに設定します。
テキスト以外のアイテムでは、デフォルトのベースラインオフセット0が使われます。
アクセス関数:
qreal | baselineOffset() const |
void | setBaselineOffset(qreal) |
通知シグナル:
void | baselineOffsetChanged(qreal) |
[read-only]
childrenRect : const 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() |
通知シグナル
void | childrenRectChanged(const QRectF &) |
clip : bool
このプロパティは、クリッピングが有効かどうかを保持する。デフォルトのクリップ値はfalse
です。
クリッピングが有効な場合、アイテムはそれ自身のペイントとその子のペイントをその境界矩形にクリッピングします。アイテムのペイント操作中にクリッピングを設定した場合は、シーンの残りの部分をクリッピングしないように、忘れずに再設定してください。
注意: クリッピングはレンダリングのパフォーマンスに影響することがあります。詳しくはクリッピングを参照してください。
Note: QML の都合上、clip をtrue
に設定すると、ItemIsViewport フラグも設定されます。これは最適化として機能することがあります。ItemObservesViewport フラグを持つ子アイテムは、ビューポートの外にあるシーングラフノードの作成を見送ることができます。しかし、ItemIsViewport
フラグは単独で設定することもできます。
アクセス関数:
bool | clip() const |
void | setClip(bool) |
通知シグナル:
void | clipChanged(bool) |
containmentMask : QObject*
このプロパティは、contains() メソッドで使用されるオプションのマスクを保持する。これは主に、各QPointerEvent のヒット・テストに使用される。
デフォルトでは、contains() は、Item の bounding box 内の任意の点に対してtrue
を返す。しかし、QQuickItem 、または以下の形式の関数を実装するQObject は、マスクとして使用できます。
Q_INVOKABLE bool contains(const QPointF &point) const;
をマスクとして使用し、ヒット・テストをそのオブジェクトに委ねることができます。
注: contains ()は、イベント配信中に頻繁に呼び出される。そのオブジェクトのcontains() メソッドが効率的でない場合、containmentMask() はパフォーマンス問題を引き起こす可能性があります。カスタムのQQuickItem サブクラスを実装する場合は、contains() をオーバーライドしてください。
アクセス関数:
QObject * | containmentMask() const |
void | setContainmentMask(QObject *mask) |
通知シグナル:
void | containmentMaskChanged() |
contains()も参照 。
enabled : bool
このプロパティは、アイテムがマウスイベントとキーボードイベントを受信するかどうかを保持する。デフォルトではtrueです。
このプロパティを設定すると、子アイテムのenabled
の値に直接影響します。false
に設定すると、すべての子アイテムのenabled
の値もfalse
になります。true
に設定すると、明示的にfalse
に設定されていない限り、子アイテムのenabled
の値はtrue
に戻されます。
このプロパティをfalse
に設定すると、自動的にactiveFocus がfalse
に設定され、このアイテムはキーボード イベントを受け取らなくなります。
注意: ホバー・イベントは、setAcceptHoverEvents() によって個別に有効にされる。したがって、このプロパティがfalse
であっても、無効化されたアイテムはホバー・イベントを受信し続けることができる。これにより、インタラクティブなアイテムが無効になっていても、情報フィードバック(ToolTip など)を表示することができる。アイテムの子として追加されたHoverHandlers についても同様である。ただし、HoverHandler は、disabled に明示的に指定することも、アイテムのenabled
状態にバインドすることもできる。
アクセス関数
bool | isEnabled() const |
void | setEnabled(bool) |
Notifier シグナル:
void | enabledChanged() |
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) |
Notifierシグナル
void | focusChanged(bool) |
activeFocus と Qt Quick のキーボードフォーカスも参照してください 。
[since 6.7]
focusPolicy : Qt::FocusPolicy
このプロパティは、アイテムがフォーカスを受け入れる方法を決定します。
このプロパティは Qt 6.7 で導入されました。
アクセス関数です:
Qt::FocusPolicy | focusPolicy() const |
void | setFocusPolicy(Qt::FocusPolicy policy) |
通知シグナル
void | focusPolicyChanged(Qt::FocusPolicy) |
[bindable]
height : qreal
注: このプロパティはQProperty バインディングをサポートしています。
このプロパティは、このアイテムの高さを保持します。
opacity : qreal
このプロパティはアイテムの不透明度を保持する。不透明度は0.0(完全に透明)から1.0(完全に不透明)の間の数値で指定する。デフォルト値は 1.0 です。
このプロパティが設定されている場合、指定された不透明度は子アイテムにも個別に適用されます。これは、状況によっては意図しない効果をもたらすことがあります。例えば、下の2番目の長方形のセットでは、赤の長方形は0.5の不透明度を指定しており、これは、子が不透明度を指定していないにもかかわらず、その青の子の長方形の不透明度に影響を与えます。
0 から 1 の範囲外の値はクランプされます。
アイテムの不透明度を変更しても、そのアイテムがユーザー入力イベントを受け取るかどうかには影響しません。(対照的に、visible プロパティをfalse
に設定するとマウス・イベントが停止し、enabled プロパティをfalse
に設定するとマウス・イベントとキーボード・イベントが停止し、さらにアイテムからアクティブ・フォーカスが外れる)
アクセス関数:
qreal | opacity() const |
void | setOpacity(qreal) |
Notifier シグナル:
void | opacityChanged() |
visibleも参照のこと 。
parent : QQuickItem*
このプロパティはアイテムのビジュアルペアレントを保持する。
注意: ビジュアルペアレントの概念はQObject ペアレントとは異なります。アイテムのビジュアルペアレントは必ずしもオブジェクトペアレントと同じとは限りません。詳細は Qt Quick の Concepts - Visual Parentを参照してください。
注意: このプロパティの通知シグナルは、ビジュアルペアレントが破棄されるときに発行されます。C++ シグナル・ハンドラは、ビジュアル親階層内のアイテムがまだ完全に構築されていると仮定することはできません。qobject_cast を使用して、親階層のアイテムが期待される型として安全に使用できることを確認してください。
アクセス関数:
QQuickItem * | parentItem() const |
void | setParentItem(QQuickItem *parent) |
Notifier シグナル:
void | parentChanged(QQuickItem *) |
rotation : qreal
このプロパティは、アイテムの回転をtransformOrigin を中心に時計回りの度数で保持する。
デフォルト値は0度(つまり回転なし)です。
アクセス関数:
qreal | rotation() const |
void | setRotation(qreal) |
通知シグナル:
void | rotationChanged() |
scale : qreal
このプロパティは、このアイテムのスケールファクタを保持する。
スケールが 1.0 未満の場合、アイテムは小さいサイズでレンダリングされ、1.0 を超える場合、アイテムは大きいサイズでレンダリングされます。負のスケールを指定すると、アイテムはレンダリング時にミラーリングされます。
デフォルト値は 1.0 です。
スケーリングはtransformOrigin から適用されます。
アクセス関数:
qreal | scale() const |
void | setScale(qreal) |
通知シグナル:
void | scaleChanged() |
smooth : bool
アイテムを平滑化するかどうかを指定します。
主に画像ベースのアイテムで使用され、アイテムがスムースサンプリングを使用するかどうかを決定します。スムースサンプリングは線形補間を使用して実行され、非スムースサンプリングは最近傍を使用して実行されます。
Qt Quick 2.0 では、このプロパティがパフォーマンスに与える影響は最小限です。
デフォルトでは、このプロパティはtrue
に設定されています。
アクセス関数:
bool | smooth() const |
void | setSmooth(bool) |
通知シグナル:
void | smoothChanged(bool) |
state : QString
このプロパティは、アイテムの現在の状態の名前を保持する。
アイテムがデフォルト状態、つまり明示的な状態が設定されていない場合、このプロパティは空文字列を保持する。同様に、このプロパティに空文字列を設定することで、項目をデフォルト状態に戻すことができる。
アクセス関数
QString | state() const |
void | setState(const QString &) |
Notifier シグナル:
void | stateChanged(const QString &) |
Qt Quick Stateも参照 。
transformOrigin : TransformOrigin
このプロパティは、スケールと回転を変換する原点を保持します。
以下の画像に示すように、9つの変換原点が利用可能です。デフォルトの変換原点はItem.Center
です。
アクセス関数
QQuickItem::TransformOrigin | transformOrigin() const |
void | setTransformOrigin(QQuickItem::TransformOrigin) |
通知シグナル:
void | transformOriginChanged(QQuickItem::TransformOrigin) |
visible : bool
このプロパティは、アイテムが可視であるかどうかを保持する。デフォルトでは true です。
このプロパティを設定すると、子アイテムのvisible
値に直接影響します。false
に設定すると、すべての子アイテムのvisible
値もfalse
になります。true
に設定すると、明示的にfalse
に設定されていない限り、子アイテムのvisible
の値はtrue
に戻されます。
(こ の よ う な フ ロ ーオ ン動作があ る ため、 プ ロ パテ ィ バ イ ンデ ィ ン グが明示的なプ ロ パテ ィ 変更にのみ反応す る べ き 場合には、visible
プ ロ パテ ィ を使用す る と 意図 し た効果が得 ら れない こ と があ り ます。こ の よ う な場合には、 かわ り にopacity プロパテ ィ を用い る こ と を推奨 し ます)。
このプロパティがfalse
に設定されると、アイテムはマウスイベントを受け取らなくなりますが、キーイベントは受け取り続け、キーボードfocus が設定されている場合はそれを保持します。(対照的に、enabled プロパティをfalse
に設定すると、マウスとキーボードの両方のイベントが停止し、アイテムのフォーカスも解除される)。
注: このプロパティの値は、このプロパティまたは親のvisible
プロパティへの変更によってのみ影響を受けます。例えば、このアイテムが画面外に移動した場合や、opacity が 0 に変化した場合は変化しない。ただし、歴史的な理由から、アイテムがまだシーンに追加されていない場合でも、このプロパティはアイテムの構築後に真となる。シーンに追加されていないアイテムのこのプロパティを変更したり読み取ったりすると、期待した結果が得られない場合があります。
注意: このプロパティの通知シグナルは、ビジュアルペアレントの破棄時に発行されます。C++ シグナル・ハンドラは、ビジュアル親階層内のアイテムがまだ完全に構築されていると仮定することはできません。qobject_cast を使用して、親階層のアイテムが期待される型として安全に使用できることを確認してください。
アクセス関数:
bool | isVisible() const |
void | setVisible(bool) |
ノーティファイア・シグナル:
void | visibleChanged() |
[bindable]
width : qreal
注: このプロパティはQProperty バインディングをサポートしています。
このプロパティは、このアイテムの幅を保持します。
[bindable]
x : qreal
注: このプロパティはQProperty バインディングをサポートしています。
アイテムの親からの相対的な x 位置を定義します。
[bindable]
y : qreal
注: このプロパティはQProperty バインディングをサポートしています。
アイテムの親からの相対的な y 位置を定義します。
z : qreal
兄弟アイテムの積み重ね順序を設定します。デフォルトでは、重ね順は 0 です。
スタッキング値が大きいアイテムは、スタッキング順が小さい兄弟の上に描画されます。同じスタッキング値を持つアイテムは、表示される順番が下から上に描画されます。負のスタッキング値を持つアイテムは、親のコンテンツの下に描画されます。
次の例は、積み重ね順序のさまざまな効果を示しています。
同じz - より後の子がより前の子の上に:
| |
より高いz が上:
| |
同じz - 親の上の子:
| |
下z
|
アクセス機能:
qreal | z() const |
void | setZ(qreal) |
通知シグナル
void | zChanged() |
メンバ関数ドキュメント
[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
を返す場合は、accept またはignore event も返す必要がある。ただし、event は、常に親チェーン上のすべての子MouseEventFilterに送信されます。
注意: 名前にもかかわらず、この関数は、すべての子(通常、マウス、タッチ、およびタブレット・イベント)への配信中に、すべてのQPointerEvent インスタンスをフィルタリングします。サブクラスでこの関数をオーバーライドする場合は、QPointerEvent にあるアクセサのみを使用して、一般的なイベント処理コードを記述することをお勧めします。あるいは、event->type()
および/またはevent->device()->type()
をオンにすることで、異なるイベントタイプを異なる方法で処理することができます。
注意: フィルタリングは、ジェスチャーがあいまいな場合(たとえば、押したときに、ユーザーがタップするかドラッグするかわからない場合)に責任を分担するための1つの方法にすぎません。もう1つの方法は、QEventPoint の進行状況を非排他的に監視するために、押下時にQPointerEvent::addPassiveGrabber() を呼び出すことです。どちらの場合でも、監視しているアイテムまたはポインタハンドラは、ジェスチャが期待しているパターンに適合していることが明らかになったときに、排他的なグラブを後で奪うことができます。
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 およびDrag and Dropも参照して ください。
[virtual protected]
void QQuickItem::dragLeaveEvent(QDragLeaveEvent *event)
このイベントハンドラをサブクラスで再実装することで、アイテムのドラッグ・リーブ・イベントを受け取ることができます。イベント情報はevent パラメータによって提供されます。
ドラッグ&ドロップイベントは、このアイテムにItemAcceptsDrops フラグが設定されている場合にのみ提供されます。
イベントはデフォルトで受け付けられますので、この関数を再実装する場合は、イベントを明示的に受け付ける必要はありません。イベントを受け入れない場合は、event->ignore()
を呼び出してください。
Drag およびDrag and Dropも参照して ください。
[virtual protected]
void QQuickItem::dragMoveEvent(QDragMoveEvent *event)
このイベントハンドラをサブクラスで再実装することで、アイテムのドラッグ移動イベントを受け取ることができます。イベント情報はevent パラメータによって提供されます。
ドラッグ&ドロップイベントは、このアイテムにItemAcceptsDrops フラグが設定されている場合にのみ提供されます。
イベントはデフォルトで受け付けられますので、この関数を再実装する場合は、イベントを明示的に受け付ける必要はありません。イベントを受け入れない場合は、event->ignore()
を呼び出してください。
Drag およびDrag and Dropも参照して ください。
[virtual protected]
void QQuickItem::dropEvent(QDropEvent *event)
このイベントハンドラは、アイテムのドロップイベントを受け取るためにサブクラスで再実装することができます。イベント情報はevent パラメータによって提供されます。
ドラッグ&ドロップイベントは、このアイテムにItemAcceptsDrops フラグが設定されている場合にのみ提供されます。
イベントはデフォルトで受け付けられますので、この関数を再実装する場合は、イベントを明示的に受け付ける必要はありません。イベントを受け入れない場合は、event->ignore()
を呼び出してください。
Drag およびDrag and Dropも参照して ください。
[invokable, since 6.3]
void QQuickItem::dumpItemTree() const
このアイテムから始まるItemのビジュアルツリーの詳細を再帰的にダンプします。
注: QObject::dumpObjectTree() も同様のツリーをダンプします。しかし、概念 -Qt Quick の視覚的な親で説明したように、アイテムのQObject::parent() はQQuickItem::parentItem() と異なることがあります。両方のツリーをダンプして、その違いを確認することができます。
注意: 正確な出力形式は、Qt の将来のバージョンで変更される可能性があります。
注意 : この関数は、メタオブジェクトシステムや QML から呼び出すことができます。Q_INVOKABLE を参照してください。
この関数は Qt 6.3 で導入されました。
デバッグテクニックと GammaRayのQt Quick Inspectorも参照してください 。
[invokable, since 6.3]
void QQuickItem::ensurePolished()
updatePolish() を呼び出します。
これは、レイアウト(またはポジショナー)のように、implicitWidth とimplicitHeight の計算を PolishEvent を受け取るまで遅延させるアイテムに便利です。
通常、例えば子アイテムが Layout に追加されたり削除されたりしても、暗黙のサイズは直ちに計算されません(これは最適化です)。場合によっては、子アイテムが追加された直後にレイアウトの暗黙的なサイズを照会することが望ましいこともあります。そのような場合は、暗黙のサイズを問い合わせる直前にこの関数を使用してください。
注意: この関数はメタオブジェクトシステムや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
このアイテムのアイテム・フラグを返します。
[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)
このイベントハンドラをサブクラスで再実装することで、アイテムの hover-leave イベントを受け取ることができます。イベント情報は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 の Concepts - Visual Coordinatesも参照して ください。
[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 の Concepts - Visual Coordinatesも参照してください 。
QPointF QQuickItem::mapFromScene(const QPointF &point) const
シーンの座標系で与えられたpoint を、このアイテムの座標系内の等価な点にマッピングし、マッピングされた座標を返す。
マッピングには、アイテムの以下のプロパティが使用される:x y 、scale 、rotation 、transformOrigin 、transform 。
アイテムが異なるシーンの一部である場合、マッピングには2つのシーンの相対位置が含まれる。
Qt Quick の Concepts - Visual Coordinatesも参照のこと 。
QRectF QQuickItem::mapRectFromItem(const QQuickItem *item, const QRectF &rect) const
item の座標系で与え ら れたrect を、 こ の項目の座標系内の等価な矩形領域にマ ッ プ し 、 マ ッ プ し た矩形の値を返 し ます。
マッピングには、アイテムの以下のプロパティが使用されます:x y 、scale 、rotation 、transformOrigin 、transform 。
アイテムが異なるシーンの一部である場合、マッピングは2つのシーンの相対位置を含む。
item がnullptr
の場合、シーンの座標系からrect をマッピングする。
Qt Quick の Concepts - Visual Coordinatesも参照のこと 。
QRectF QQuickItem::mapRectFromScene(const QRectF &rect) const
シーンの座標系で与えられたrect を、このアイテムの座標系内の等価な矩形領域にマッピングし、マッピングされた矩形の値を返す。
マッピングには、アイテムの以下のプロパティが使用される:x y 、scale 、rotation 、transformOrigin 、transform 。
アイテムが異なるシーンの一部である場合、マッピングには2つのシーンの相対位置が含まれる。
Qt Quick の Concepts - Visual Coordinatesも参照のこと 。
QRectF QQuickItem::mapRectToItem(const QQuickItem *item, const QRectF &rect) const
こ の項目の座標系で与え ら れたrect を、item の座標系内の等価な矩形領域にマ ッ プ し 、 マ ッ プ し た矩形の値を返す。
マッピングには、アイテムの以下のプロパティが使用されます:x y 、scale 、rotation 、transformOrigin 、transform 。
アイテムが異なるシーンの一部である場合、マッピングは2つのシーンの相対位置を含む。
item がnullptr
の場合、これはrect をシーンの座標系にマッピングする。
Qt Quick の Concepts - Visual Coordinatesも参照のこと 。
QRectF QQuickItem::mapRectToScene(const QRectF &rect) const
このアイテムの座標系で与えられたrect を、シーンの座標系内の等価な矩形領域にマッピングし、マッピングされた矩形の値を返す。
マッピングには、アイテムの以下のプロパティが使用される:x y 、scale 、rotation 、transformOrigin 、transform 。
アイテムが異なるシーンの一部である場合、マッピングには2つのシーンの相対位置が含まれる。
Qt Quick の Concepts - Visual Coordinatesも参照のこと 。
[invokable]
QPointF QQuickItem::mapToGlobal(const QPointF &point) const
このアイテムの座標系で与えられたpoint を、グローバルスクリーン座標系内の等価点にマッピングし、マッピングされた座標を返す。
マッピングには、アイテムの以下のプロパティが使用される:x y 、scale 、rotation 、transformOrigin 、transform 。
アイテムが異なるシーンの一部である場合、マッピングには2つのシーンの相対位置が含まれます。
例えば、これはQt Quick コンポーネントにポップアップを追加するのに役立つかもしれません。
注: ウィンドウの位置決めはウィンドウマネージャによって行われ、この値はヒントとしてのみ扱われます。そのため、結果として得られるウィンドウの位置は、期待されるものとは異なる可能性があります。
注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
Concepts - Visual Coordinates inQt 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 の Concepts - Visual Coordinatesも参照してください 。
QPointF QQuickItem::mapToScene(const QPointF &point) const
このアイテムの座標系内の与えられたpoint を、シーンの座標系内の等価な点にマッピングし、マッピングされた座標を返す。
マッピングには、アイテムの以下のプロパティが使用される:x y 、scale 、rotation 、transformOrigin 、transform 。
アイテムが異なるシーンの一部である場合、マッピングには2つのシーンの相対位置が含まれる。
Qt Quick の Concepts - Visual Coordinatesも参照のこと 。
[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 に設定します。
注意: Qt 5 では、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 を有効にする。
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)
指定されたsibling アイテムを、子アイテムのリスト内でこのアイテムの後のインデックスに移動します。子アイテムの順序は、視覚的なスタック順序とタブフォーカスナビゲーションの順序の両方に影響します。
両方のアイテムの z 値が同じであると仮定すると、sibling はこのアイテムの下にレンダリングされます。
両方のアイテムのactiveFocusOnTab がtrue
に設定されている場合、タブフォーカスの順序も変更され、sibling がこのアイテムの前にフォーカスされます。
指定されたsibling は、このアイテムの兄弟でなければなりません。つまり、同じ直下のparent を持たなければなりません。
Qt Quick の Concepts - Visual Parentも参照してください 。
void QQuickItem::stackBefore(const QQuickItem *sibling)
指定されたsibling アイテムを、子アイテムのリスト内でこのアイテムの前のインデックスに移動します。子アイテムの順序は、視覚的なスタック順序とタブフォーカスナビゲーションの順序の両方に影響します。
両方のアイテムの z 値が同じであると仮定すると、sibling はこのアイテムの上にレンダリングされます。
両方のアイテムのactiveFocusOnTab がtrue
に設定されている場合、タブフォーカスの順序も変更され、sibling がこのアイテムの後にフォーカスされます。
指定されたsibling は、このアイテムの兄弟でなければなりません。つまり、同じ直下のparent を持たなければなりません。
Qt Quick の Concepts - Visual Parentも参照してください 。
[virtual]
QSGTextureProvider *QQuickItem::textureProvider() const
アイテムのテクスチャプロバイダを返します。デフォルトの実装はnullptr
を返します。
この関数は、レンダリングスレッドでのみ呼び出すことができます。
[virtual protected]
void QQuickItem::touchEvent(QTouchEvent *event)
このイベントハンドラは、アイテムのタッチイベントを受け取るためにサブクラスで再実装することができます。イベント情報はevent パラメータによって提供されます。
イベントはデフォルトで受理されるため、この関数を再実装する場合、イベントを明示的に受理する必要はありません。イベントを受け入れない場合は、event->ignore()
を呼び出してください。
[virtual protected]
void QQuickItem::touchUngrabEvent()
このイベントハンドラはサブクラスで再実装することができ、このアイテムでタッチのアングラブイベントが発生したときに通知されます。
void QQuickItem::unsetCursor()
この項目のカーソル形状をクリアする。
[slot]
void QQuickItem::update()
このアイテムのupdatePaintNode() 呼び出しをスケジュールする。
アイテムがQQuickWindow で表示されている場合、QQuickItem::updatePaintNode() への呼び出しは常に発生します。
QQuickItem::update() を呼び出すことができるのは、QQuickItem::ItemHasContents を指定したアイテムのみです。
[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 インスタンスや他のオブジェクトから値を読み取ることは安全です。
QQuickItem::updatePaintNode()の呼び出しの結果、QSGNode::markDirty()やノードの追加と削除のような実際のシーングラフの変更が行われなかった場合、基本的な実装は、視覚的な結果が同じであるため、シーンの再レンダリングを行わないことを決定するかもしれません。
警告 グラフィックス操作とシーングラフとのインタラクションは、主に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 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.