Sur cette page

QQuickItem Class

La classe QQuickItem fournit l'élément visuel le plus basique de tous les éléments de la . Qt Quick. Plus...

En-tête : #include <QQuickItem>
CMake : find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake : QT += quick
En QML : Item
Hérite : QObject et QQmlParserStatus
Héritée par :

QQuickFramebufferObject, QQuickPaintedItem, et QQuickRhiItem

Types publics

union ItemChangeData
enum Flag { ItemClipsChildrenToShape, ItemAcceptsInputMethod, ItemIsFocusScope, ItemHasContents, ItemAcceptsDrops, …, ItemObservesViewport }
flags Flags
enum ItemChange { ItemChildAddedChange, ItemChildRemovedChange, ItemSceneChange, ItemVisibleHasChanged, ItemParentHasChanged, …, ItemTransformHasChanged }
enum TransformOrigin { TopLeft, Top, TopRight, Left, Center, …, BottomRight }

Propriétés

Fonctions publiques

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

Emplacements publics

void update()

Signaux

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()

Fonctions protégées

virtuel bool childMouseEventFilter(QQuickItem *item, QEvent *event)
virtual void dragEnterEvent(QDragEnterEvent *event)
virtual void dragLeaveEvent(QDragLeaveEvent *event)
virtual void dragMoveEvent(QDragMoveEvent *event)
vide virtuel (QDragMoveEvent *event) dropEvent(QDropEvent *event)
vide virtuel (QFocusEvent *event) focusInEvent(QFocusEvent *event)
vide virtuel (QFocusEvent *event) focusOutEvent(QFocusEvent *event)
(since 6.0) vide virtuel (const QRectF &newGeometry, const QFocusEvent) geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
bool heightValid() const
vide virtuel hoverEnterEvent(QHoverEvent *event)
vide virtuel (QHoverEvent *event) hoverLeaveEvent(QHoverEvent *événement)
vide virtuel (QHoverEvent *event) hoverMoveEvent(QHoverEvent *événement)
vide virtuel (QInputMethodEvent *event) 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 *événement)
virtual void mouseDoubleClickEvent(QMouseEvent *événement)
vide virtuel (QMouseEvent *event) mouseMoveEvent(QMouseEvent *event)
vide virtuel mousePressEvent(QMouseEvent *event)
virtuel void mouseReleaseEvent(QMouseEvent *événement)
virtuel void mouseUngrabEvent()
virtuel void releaseResources()
vide virtuel touchEvent(QTouchEvent *event)
virtuel void touchUngrabEvent()
void updateInputMethod(Qt::InputMethodQueries queries = Qt::ImQueryInput)
QSGNode virtuel *updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *updatePaintNodeData)
virtual void updatePolish()
virtual void wheelEvent(QWheelEvent *event)
bool widthValid() const

Fonctions protégées réimplémentées

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

Description détaillée

Tous les éléments visuels de Qt Quick héritent de QQuickItem. Bien qu'une instance de QQuickItem n'ait pas d'apparence visuelle, elle définit tous les attributs communs aux éléments visuels, tels que la position x et y, la largeur et la hauteur, l'ancrage et la gestion des touches.

Vous pouvez sous-classer QQuickItem pour fournir votre propre élément visuel personnalisé qui hérite de ces caractéristiques.

Éléments de graphique de scène personnalisés

Tous les éléments visuels QML sont rendus à l'aide du graphe de scène, dont l'implémentation par défaut est une pile de rendu de bas niveau et de haute performance, étroitement liée aux API graphiques accélérées, telles que OpenGL, Vulkan, Metal ou Direct 3D. Il est possible pour les sous-classes de QQuickItem d'ajouter leur propre contenu personnalisé dans le graphe de scène en définissant le drapeau QQuickItem::ItemHasContents et en réimplémentant la fonction QQuickItem::updatePaintNode().

Attention : Il est essentiel que les opérations graphiques et l'interaction avec le graphe de scène se déroulent exclusivement dans le thread de rendu, principalement lors de l'appel à updatePaintNode(). La meilleure règle est de n'utiliser que des classes avec le préfixe "QSG" à l'intérieur de la fonction QQuickItem::updatePaintNode().

Note : Toutes les classes avec le préfixe QSG doivent être utilisées uniquement dans le fil de rendu du graphe de scène. Voir Graphique de scène et rendu pour plus d'informations.

Gestion des ressources graphiques

La meilleure façon de gérer le nettoyage des ressources graphiques utilisées dans le graphe de scène est de s'appuyer sur le nettoyage automatique des nœuds. Un nœud QSGNode renvoyé par QQuickItem::updatePaintNode() est automatiquement supprimé sur le bon thread au bon moment. Les arbres d'instances QSGNode sont gérés par l'utilisation de QSGNode::OwnedByParent, qui est défini par défaut. Ainsi, pour la majorité des éléments de graphe de scène personnalisés, aucun travail supplémentaire n'est nécessaire.

Les implémentations qui stockent des ressources graphiques en dehors de l'arbre des nœuds, comme un élément implémentant QQuickItem::textureProvider(), devront prendre soin de les nettoyer correctement en fonction de la façon dont l'élément est utilisé dans QML. Les situations à gérer sont les suivantes :

  • Le graphe de scène est invalidé ; cela peut se produire, en fonction de la plate-forme et de la configuration de QQuickWindow, lorsque la fenêtre est cachée à l'aide de QQuickWindow::hide(), ou lorsqu'elle est fermée. Si la classe de l'élément implémente un slot nommé invalidateSceneGraph(), ce slot sera appelé sur le thread de rendu pendant que le thread de l'interface graphique est bloqué. Cela équivaut à se connecter à QQuickWindow::sceneGraphInvalidated(). Lors d'un rendu via OpenGL, le contexte OpenGL de la fenêtre de cet élément sera lié lorsque ce slot sera appelé. La seule exception est si l'OpenGL natif a été détruit en dehors du contrôle de Qt, par exemple par EGL_CONTEXT_LOST.
  • L'élément est retiré de la scène ; Si un élément est retiré de la scène, par exemple parce que son parent a été mis à null ou un élément dans une autre fenêtre, QQuickItem::releaseResources() sera appelé sur le thread de l'interface graphique. QQuickWindow::scheduleRenderJob() doit être utilisée pour planifier le nettoyage des ressources de rendu.
  • L'élément est supprimé ; lorsque le destructeur d'un élément s'exécute, il doit supprimer toutes les ressources graphiques qu'il possède. Si aucune des deux conditions ci-dessus n'est remplie, l'élément fait partie d'une fenêtre et il est possible d'utiliser QQuickWindow::scheduleRenderJob() pour les nettoyer. Si une implémentation ignore l'appel à QQuickItem::releaseResources(), l'élément n'aura, dans de nombreux cas, plus accès à QQuickWindow et n'aura donc plus aucun moyen de programmer le nettoyage.

Lorsque l'on planifie le nettoyage des ressources graphiques à l'aide de QQuickWindow::scheduleRenderJob(), il convient d'utiliser QQuickWindow::BeforeSynchronizingStage ou QQuickWindow::AfterSynchronizingStage. L'étape de synchronisation est celle où le graphe de la scène est modifié à la suite des changements apportés à l'arbre QML. Si le nettoyage est programmé à un autre moment, il se peut que d'autres parties du graphe de la scène fassent référence aux objets nouvellement supprimés, car ces parties n'ont pas été mises à jour.

Note : L'utilisation de QObject::deleteLater() pour nettoyer les ressources graphiques est fortement déconseillée car cela fera tourner l'opération delete à un moment arbitraire et on ne sait pas s'il y aura un contexte OpenGL lié lorsque la suppression aura lieu.

Éléments personnalisés de QPainter

Le QQuickItem fournit une sous-classe, QQuickPaintedItem, qui permet aux utilisateurs de rendre le contenu à l'aide de QPainter.

Attention : L'utilisation de QQuickPaintedItem utilise une surface 2D indirecte pour rendre son contenu, à l'aide d'un logiciel de tramage, de sorte que le rendu est une opération en deux étapes. Il faut d'abord rastériser la surface, puis la dessiner. L'utilisation directe de l'API de graphe de scène est toujours beaucoup plus rapide.

Animations de comportement

Si votre élément utilise le type Behavior pour définir des animations pour les changements de propriété, vous devez toujours utiliser QObject::setProperty(), QQmlProperty() ou QMetaProperty::write() lorsque vous devez modifier ces propriétés à partir de C++. Cela permet de s'assurer que le moteur QML est au courant de la modification de la propriété. Dans le cas contraire, le moteur ne sera pas en mesure d'exécuter l'animation demandée. Notez que ces fonctions entraînent une légère pénalité en termes de performances. Pour plus de détails, voir Accéder aux membres d'un type d'objet QML à partir de C++.

Voir également QQuickWindow et QQuickPaintedItem.

Documentation des types de membres

enum QQuickItem::Flag
flags QQuickItem::Flags

Ce type d'enum est utilisé pour spécifier diverses propriétés de l'élément.

ConstanteValeurDescription
QQuickItem::ItemClipsChildrenToShape0x01Indique que cet élément doit découper visuellement ses enfants de manière à ce qu'ils soient rendus uniquement à l'intérieur des limites de cet élément.
QQuickItem::ItemAcceptsInputMethod0x02Indique que l'élément prend en charge les méthodes de saisie de texte.
QQuickItem::ItemIsFocusScope0x04Indique que l'élément est une portée de mise au point. Pour plus d'informations, voir Keyboard Focus à l'adresse Qt Quick.
QQuickItem::ItemHasContents0x08Indique que l'élément a un contenu visuel et qu'il doit être rendu par le graphe de scène.
QQuickItem::ItemAcceptsDrops0x10Indique que l'élément accepte les événements de glisser-déposer.
QQuickItem::ItemIsViewport0x20Indique que l'élément définit une fenêtre de visualisation pour ses enfants.
QQuickItem::ItemObservesViewport0x40Indique que l'élément souhaite connaître les limites de la fenêtre d'affichage lorsqu'un de ses ancêtres a le drapeau ItemIsViewport activé.

Le type Flags est un typedef pour QFlags<Flag>. Il stocke une combinaison OU de valeurs de drapeaux.

Voir également setFlag(), setFlags() et flags().

enum QQuickItem::ItemChange

Utilisé en conjonction avec QQuickItem::itemChange() pour informer l'élément de certains types de changements.

ConstanteValeurDescription
QQuickItem::ItemChildAddedChange0Un enfant a été ajouté. ItemChangeData::item contient l'enfant ajouté.
QQuickItem::ItemChildRemovedChange1Un enfant a été supprimé. ItemChangeData::item contient l'enfant supprimé.
QQuickItem::ItemSceneChange2L'élément a été ajouté ou retiré d'une scène. L'adresse QQuickWindow qui rend la scène est spécifiée à l'aide de l'adresse ItemChangeData::window. Le paramètre window est nul lorsque l'élément est retiré d'une scène.
QQuickItem::ItemVisibleHasChanged3La visibilité de l'élément a changé. ItemChangeData::boolValue contient la nouvelle visibilité.
QQuickItem::ItemParentHasChanged4Le parent de l'élément a changé. ItemChangeData::item contient le nouveau parent.
QQuickItem::ItemOpacityHasChanged5L'opacité de l'élément a changé. ItemChangeData::realValue contient la nouvelle opacité.
QQuickItem::ItemActiveFocusHasChanged6Le focus de l'élément a changé. ItemChangeData::boolValue indique si l'élément a le focus ou non.
QQuickItem::ItemRotationHasChanged7La rotation de l'élément a changé. ItemChangeData::realValue contient la nouvelle rotation.
QQuickItem::ItemDevicePixelRatioHasChanged9Le ratio de pixels de l'écran sur lequel se trouve l'élément a changé. ItemChangedData::realValue contient le nouveau rapport de pixels de l'appareil.
QQuickItem::ItemAntialiasingHasChanged8L'anticrénelage a changé. La valeur actuelle (booléenne) se trouve à l'adresse QQuickItem::antialiasing.
QQuickItem::ItemEnabledHasChanged10L'état activé de l'élément a changé. ItemChangeData::boolValue contient le nouvel état activé. (depuis Qt 5.10)
QQuickItem::ItemScaleHasChanged11L'échelle de l'élément a changé. ItemChangeData::realValue contient l'échelle. (depuis Qt 6.9)
QQuickItem::ItemTransformHasChanged12La transformation de l'élément a changé. Cela se produit lorsque la position, la taille, la rotation, l'échelle, transformOrigin ou les transformations attachées de l'élément changent. ItemChangeData::item contient l'élément qui a causé le changement. (depuis Qt 6.9)

enum QQuickItem::TransformOrigin

Contrôle le point autour duquel s'appliquent les transformations simples telles que l'échelle.

ConstanteValeurDescription
QQuickItem::TopLeft0Le coin supérieur gauche de l'élément.
QQuickItem::Top1Le point central du haut de l'élément.
QQuickItem::TopRight2Le coin supérieur droit de l'élément.
QQuickItem::Left3Le point le plus à gauche du milieu vertical.
QQuickItem::Center4Le centre de l'élément.
QQuickItem::Right5Le point le plus à droite du milieu vertical.
QQuickItem::BottomLeft6Le coin inférieur gauche de l'élément.
QQuickItem::Bottom7Le point central du bas de l'élément.
QQuickItem::BottomRight8Le coin inférieur droit de l'élément.

Voir également transformOrigin() et setTransformOrigin().

Documentation sur les propriétés

[read-only] activeFocus : bool

Cette propriété en lecture seule indique si l'élément a le focus actif.

Si activeFocus est vrai, soit cet élément est celui qui reçoit actuellement la saisie au clavier, soit il est un ancêtre FocusScope de l'élément qui reçoit actuellement la saisie au clavier.

En général, activeFocus est obtenu en définissant focus sur un élément et les objets FocusScope qui l'entourent. Dans l'exemple suivant, les objets input et focusScope auront le focus actif, alors que l'objet rectangle racine ne l'aura pas.

import QtQuick 2.0

Rectangle {
    width: 100; height: 100

    FocusScope {
        focus: true

        TextInput {
            id: input
            focus: true
        }
    }
}

Fonctions d'accès :

bool hasActiveFocus() const

Signal Notifier :

void activeFocusChanged(bool)

Voir également focus et Keyboard Focus dans Qt Quick.

activeFocusOnTab : bool

Cette propriété indique si l'élément doit faire partie de la chaîne de mise au point de l'onglet. Par défaut, elle est définie sur false.

Remarque : tabFocusBehavior peut également limiter le focus à des types de contrôles spécifiques, tels que les contrôles de texte ou de liste. C'est le cas sous macOS, où la focalisation sur des contrôles particuliers peut être restreinte en fonction des paramètres du système.

Fonctions d'accès :

bool activeFocusOnTab() const
void setActiveFocusOnTab(bool)

Signal de notification :

void activeFocusOnTabChanged(bool)

Voir également QStyleHints::tabFocusBehavior et focusPolicy.

antialiasing : bool

Spécifie si l'élément est anticrénelé ou non

Utilisé par les éléments visuels pour décider si l'élément doit utiliser l'anticrénelage ou non. Dans certains cas, les éléments avec anticrénelage nécessitent plus de mémoire et sont potentiellement plus lents à rendre (voir anticrénelage pour plus de détails).

La valeur par défaut est false, mais elle peut être remplacée par des éléments dérivés.

Fonctions d'accès :

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

Signal du notificateur :

void antialiasingChanged(bool)

baselineOffset : qreal

Spécifie la position de la ligne de base de l'article en coordonnées locales.

La ligne de base d'un élément Text est la ligne imaginaire sur laquelle se trouve le texte. Les contrôles contenant du texte définissent généralement leur ligne de base sur la ligne de base de leur texte.

Pour les éléments qui ne contiennent pas de texte, un décalage de la ligne de base de 0 est utilisé par défaut.

Fonctions d'accès :

qreal baselineOffset() const
void setBaselineOffset(qreal)

Signal de notification :

void baselineOffsetChanged(qreal)

[read-only] childrenRect : QRectF

Cette propriété contient la position et la taille collectives des enfants de l'élément.

Cette propriété est utile si vous avez besoin d'accéder à la géométrie collective des enfants d'un élément afin de dimensionner correctement l'élément.

La géométrie renvoyée est locale à l'élément. Par exemple, la géométrie renvoyée est locale à l'élément :

Item {
    x: 50
    y: 100

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

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

Fonctions d'accès :

QRectF childrenRect()

Signal de notification :

void childrenRectChanged(const QRectF &)

clip : bool

Cette propriété indique si l'écrêtage est activé. La valeur par défaut est false.

Si l'écrêtage est activé, un élément écrêtera sa propre peinture, ainsi que la peinture de ses enfants, sur son rectangle de délimitation. Si vous définissez l'écrêtage pendant l'opération de peinture d'un élément, n'oubliez pas de le redéfinir pour éviter d'écrêter le reste de votre scène.

Remarque : l 'écrêtage peut affecter les performances de rendu. Pour plus d'informations, consultez la rubrique " Écrêtage".

Remarque : Pour les besoins de QML, le fait d'attribuer à clip la valeur true permet également d'attribuer le drapeau ItemIsViewport, ce qui constitue parfois une optimisation : les éléments enfants qui possèdent le drapeau ItemObservesViewport peuvent renoncer à créer des nœuds de graphe de scène qui se situent en dehors de la fenêtre de visualisation. Mais l'indicateur ItemIsViewport peut également être défini indépendamment.

Fonctions d'accès :

bool clip() const
void setClip(bool)

Signal de notification :

void clipChanged(bool)

containmentMask : QObject*

Cette propriété contient un masque facultatif à utiliser dans la méthode contains(), qui sert principalement à tester chaque QPointerEvent.

Par défaut, contains() renvoie true pour tout point situé dans la zone de délimitation de l'élément. Mais n'importe quel QQuickItem, ou n'importe quel QObject qui implémente une fonction de la forme

Q_INVOKABLE bool contains(const QPointF &point) const;

peut être utilisé comme masque, afin de reporter le test d'impact sur cet objet.

Remarque : contains() est fréquemment appelé lors de la livraison d'un événement. Le report du hit-test à un autre objet le ralentit quelque peu. containmentMask() peut entraîner des problèmes de performance si la méthode contains() de cet objet n'est pas efficace. Si vous implémentez une sous-classe QQuickItem personnalisée, vous pouvez également surcharger contains().

Fonctions d'accès :

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

Signal Notificateur :

void containmentMaskChanged()

Voir aussi contains().

enabled : bool

Cette propriété indique si l'élément reçoit des événements de souris et de clavier. La valeur par défaut est "true" (vrai).

La définition de cette propriété affecte directement la valeur enabled des éléments enfants. Lorsque cette propriété vaut false, les valeurs enabled de tous les éléments enfants deviennent également false. Lorsque cette propriété vaut true, les valeurs enabled des éléments enfants sont ramenées à true, à moins qu'elles n'aient été explicitement fixées à false.

La définition de cette propriété à false entraîne automatiquement la définition de activeFocus à false, et cet élément ne recevra plus d'événements clavier.

Remarque : les événements de survol sont activés séparément par setAcceptHoverEvents(). Ainsi, un élément désactivé peut continuer à recevoir des événements de survol, même si la valeur de cette propriété est false. Cela permet d'afficher des informations (telles que ToolTip) même lorsqu'un élément interactif est désactivé. Il en va de même pour les HoverHandlers ajoutés en tant qu'enfants de l'élément. Un HoverHandler peut toutefois être disabled explicitement ou, par exemple, être lié à l'état enabled de l'élément.

Fonctions d'accès :

bool isEnabled() const
void setEnabled(bool)

Signal de notification :

void enabledChanged()

Voir aussi visible.

focus : bool

Cette propriété indique si l'élément est au centre de l'attention à l'intérieur du site FocusScope. Si elle est vraie, l'élément obtiendra le focus actif lorsque l'élément qui le contient, FocusScope, obtiendra le focus actif.

Dans l'exemple suivant, input obtiendra le focus actif lorsque scope obtiendra le focus actif :

import QtQuick 2.0

Rectangle {
    width: 100; height: 100

    FocusScope {
        id: scope

        TextInput {
            id: input
            focus: true
        }
    }
}

Pour les besoins de cette propriété, la scène dans son ensemble est supposée agir comme un champ de focalisation. D'un point de vue pratique, cela signifie que le langage QML suivant donnera le focus actif à input au démarrage.

Rectangle {
    width: 100; height: 100

    TextInput {
          id: input
          focus: true
    }
}

Fonctions d'accès :

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

Signal Notifier :

void focusChanged(bool)

Voir également activeFocus et Keyboard Focus dans Qt Quick.

[since 6.7] focusPolicy : Qt::FocusPolicy

Cette propriété détermine la manière dont l'élément accepte le focus.

Cette propriété a été introduite dans Qt 6.7.

Fonctions d'accès :

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

Signal Notifier :

void focusPolicyChanged(Qt::FocusPolicy)

[bindable] height : qreal

Remarque : Cette propriété prend en charge les liens QProperty.

Cette propriété indique la hauteur de l'élément.

Fonctions d'accès :

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

Signal de notification :

void heightChanged()

implicitHeight : qreal

implicitWidth : qreal

Définit la largeur ou la hauteur préférée de l'élément.

Si width ou height n'est pas spécifié, la taille effective d'un élément sera déterminée par son implicitWidth ou implicitHeight.

Toutefois, si un élément est l'enfant d'une mise en page, cette dernière déterminera la taille préférée de l'élément à l'aide de sa taille implicite. Dans ce cas, la taille explicite width ou height est ignorée.

La taille implicite par défaut de la plupart des éléments est 0x0, mais certains éléments ont une taille implicite inhérente qui ne peut être modifiée, par exemple Image et Text.

La définition de la taille implicite est utile pour définir des composants qui ont une taille préférée en fonction de leur contenu, par exemple :

// 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
    }
}

Remarque : l'utilisation de implicitWidth de Text ou TextEdit et la définition explicite de la largeur entraînent une pénalité en termes de performances, car le texte doit être mis en page deux fois.

opacity : qreal

Cette propriété définit l'opacité de l'élément. L'opacité est spécifiée sous la forme d'un nombre compris entre 0,0 (totalement transparent) et 1,0 (totalement opaque). La valeur par défaut est 1.0.

Lorsque cette propriété est définie, l'opacité spécifiée est également appliquée individuellement aux éléments enfants. Cela peut avoir un effet inattendu dans certaines circonstances. Par exemple, dans la deuxième série de rectangles ci-dessous, le rectangle rouge a spécifié une opacité de 0,5, ce qui affecte l'opacité de son rectangle enfant bleu, même si l'enfant n'a pas spécifié d'opacité.

Les valeurs situées en dehors de la plage de 0 à 1 seront bloquées.

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

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

La modification de l'opacité d'un élément n'affecte pas le fait que l'élément reçoive des événements de saisie de l'utilisateur. (En revanche, la définition de la propriété visible sur false arrête les événements de la souris, et la définition de la propriété enabled sur false arrête les événements de la souris et du clavier, et supprime également le focus actif de l'élément).

Fonctions d'accès :

qreal opacity() const
void setOpacity(qreal)

Signal du notificateur :

void opacityChanged()

Voir aussi visible.

parent : QQuickItem*

Cette propriété contient le parent visuel de l'élément.

Remarque : le concept de parent visuel diffère de celui de parentQObject . Le parent visuel d'un élément n'est pas nécessairement le même que son parent objet. Voir Concepts - Parent visuel dans Qt Quick pour plus de détails.

Remarque : le signal de notification de cette propriété est émis lors de la destruction du parent visuel. Les gestionnaires de signaux C++ ne peuvent pas supposer que les éléments de la hiérarchie du parent visuel sont encore entièrement construits. Utilisez qobject_cast pour vérifier que les éléments de la hiérarchie parentale peuvent être utilisés en toute sécurité comme le type attendu.

Fonctions d'accès :

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

Signal Notificateur :

void parentChanged(QQuickItem *)

rotation : qreal

Cette propriété indique la rotation de l'élément en degrés dans le sens des aiguilles d'une montre autour de son site transformOrigin.

La valeur par défaut est de 0 degré (c'est-à-dire aucune rotation).

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

Fonctions d'accès :

qreal rotation() const
void setRotation(qreal)

Signal du notificateur :

void rotationChanged()

Voir aussi Transform et Rotation.

scale : qreal

Cette propriété contient le facteur d'échelle de cet élément.

Une échelle inférieure à 1,0 réduit la taille de l'élément et une échelle supérieure à 1,0 augmente la taille de l'élément. Une échelle négative a pour effet de refléter l'élément lors du rendu.

La valeur par défaut est 1,0.

La mise à l'échelle est appliquée à partir du site transformOrigin.

import QtQuick 2.0

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

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

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

Fonctions d'accès :

qreal scale() const
void setScale(qreal)

Signal de notification :

void scaleChanged()

Voir également Transform et Scale.

smooth : bool

Spécifie si l'élément est lissé ou non

Principalement utilisé dans les éléments basés sur des images pour décider si l'élément doit utiliser un échantillonnage lisse ou non. L'échantillonnage lisse est réalisé à l'aide d'une interpolation linéaire, tandis que l'échantillonnage non lisse est réalisé à l'aide du plus proche voisin.

Dans Qt Quick 2.0, cette propriété a un impact minimal sur les performances.

Par défaut, cette propriété est définie sur true.

Fonctions d'accès :

bool smooth() const
void setSmooth(bool)

Signal de notification :

void smoothChanged(bool)

state : QString

Cette propriété contient le nom de l'état actuel de l'élément.

Si l'élément est dans son état par défaut, c'est-à-dire qu'aucun état explicite n'a été défini, cette propriété contient une chaîne vide. De même, vous pouvez ramener un élément à son état par défaut en définissant cette propriété à une chaîne vide.

Fonctions d'accès :

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

Signal du notificateur :

void stateChanged(const QString &)

Voir aussi Qt Quick États.

transformOrigin : TransformOrigin

Cette propriété définit le point d'origine autour duquel l'échelle et la rotation sont transformées.

Neuf origines de transformation sont disponibles, comme le montre l'image ci-dessous. L'origine de la transformation par défaut est Item.Center.

Fonctions d'accès :

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

Signal de notification :

void transformOriginChanged(QQuickItem::TransformOrigin)

visible : bool

Cette propriété indique si l'élément est visible. Par défaut, elle est égale à true (vrai).

La définition de cette propriété affecte directement la valeur visible des éléments enfants. Lorsque cette propriété vaut false, les valeurs visible de tous les éléments enfants deviennent également false. Lorsque la valeur est fixée à true, les valeurs visible des éléments enfants sont ramenées à true, à moins qu'elles n'aient été explicitement fixées à false.

(En raison de ce comportement de flux, l'utilisation de la propriété visible peut ne pas avoir l'effet escompté si une liaison de propriété ne doit répondre qu'aux changements explicites de propriété. Dans ce cas, il peut être préférable d'utiliser la propriété opacity ).

Si cette propriété est définie sur false, l'élément ne recevra plus d'événements liés à la souris, mais continuera à recevoir des événements liés aux touches et conservera le clavier focus s'il a été défini. (En revanche, si la propriété enabled est définie sur false, les événements souris et clavier sont interrompus et le focus de l'élément est supprimé).

Remarque : la valeur de cette propriété n'est affectée que par les modifications apportées à cette propriété ou à la propriété visible du parent. Elle ne change pas, par exemple, si l'élément se déplace hors de l'écran ou si la valeur de opacity passe à 0. Cependant, pour des raisons historiques, cette propriété est vraie après la construction de l'élément, même si l'élément n'a pas encore été ajouté à une scène. La modification ou la lecture de cette propriété d'un élément qui n'a pas été ajouté à une scène peut ne pas produire les résultats escomptés.

Remarque : le signal de notification de cette propriété est émis lors de la destruction du parent visuel. Les gestionnaires de signaux C++ ne peuvent pas supposer que les éléments de la hiérarchie du parent visuel sont encore entièrement construits. Utilisez qobject_cast pour vérifier que les éléments de la hiérarchie parentale peuvent être utilisés en toute sécurité comme le type attendu.

Fonctions d'accès :

bool isVisible() const
void setVisible(bool)

Signal Notificateur :

void visibleChanged()

Voir également opacity et enabled.

[bindable] width : qreal

Remarque : Cette propriété prend en charge les liens QProperty.

Cette propriété contient la largeur de cet élément.

Fonctions d'accès :

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

Signal de notification :

void widthChanged()

[bindable] x : qreal

Remarque : cette propriété prend en charge les liens QProperty.

Définit la position x de l'élément par rapport à son parent.

Fonctions d'accès :

qreal x() const
void setX(qreal)

Signal du notificateur :

void xChanged()

[bindable] y : qreal

Remarque : cette propriété prend en charge les liens QProperty.

Définit la position en y de l'élément par rapport à son parent.

Fonctions d'accès :

qreal y() const
void setY(qreal)

Signal du notificateur :

void yChanged()

z : qreal

Définit l'ordre d'empilement des éléments frères. Par défaut, l'ordre d'empilement est de 0.

Les éléments ayant une valeur d'empilement supérieure sont dessinés au-dessus des frères et sœurs ayant un ordre d'empilement inférieur. Les éléments ayant la même valeur d'empilement sont dessinés de bas en haut dans l'ordre où ils apparaissent. Les éléments ayant une valeur d'empilement négative sont dessinés sous le contenu de leur parent.

L'exemple suivant illustre les différents effets de l'ordre d'empilement.

Même z - les derniers enfants sont placés au-dessus des premiers :
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
    }
    Rectangle {
        color: "blue"
        x: 50; y: 50; width: 100; height: 100
    }
}

Plus haut z en haut :
Item {
    Rectangle {
        z: 1
        color: "red"
        width: 100; height: 100
    }
    Rectangle {
        color: "blue"
        x: 50; y: 50; width: 100; height: 100
    }
}

Identique z - les enfants au-dessus des parents :
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
        Rectangle {
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

Plus bas z en dessous :
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
        Rectangle {
            z: -1
            color: "blue"
            x: 50; y: 50; width: 100; height: 100
        }
    }
}

Fonctions d'accès :

qreal z() const
void setZ(qreal)

Signal de notification :

void zChanged()

Documentation des fonctions membres

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

Construit un QQuickItem avec l'adresse parent donnée.

Le parent sera utilisé comme parent du visual parent et du QObject.

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

Détruit le site QQuickItem.

bool QQuickItem::acceptHoverEvents() const

Indique si les événements de survol sont acceptés par cet élément.

La valeur par défaut est false.

Si cette valeur est false, l'élément ne recevra aucun événement de survol par l'intermédiaire des fonctions hoverEnterEvent(), hoverMoveEvent() et hoverLeaveEvent().

Voir également setAcceptHoverEvents().

bool QQuickItem::acceptTouchEvents() const

Indique si les événements tactiles sont acceptés par cet élément.

La valeur par défaut est false.

Si cette valeur est false, l'élément ne recevra aucun événement tactile par l'intermédiaire de la fonction touchEvent().

Voir également setAcceptTouchEvents().

Qt::MouseButtons QQuickItem::acceptedMouseButtons() const

Renvoie les boutons de souris acceptés par cet élément.

La valeur par défaut est Qt::NoButton; c'est-à-dire qu'aucun bouton de souris n'est accepté.

Si un élément n'accepte pas le bouton de la souris pour un événement de souris particulier, l'événement de souris ne sera pas transmis à l'élément et sera transmis à l'élément suivant dans la hiérarchie des éléments.

Voir également setAcceptedMouseButtons() et acceptTouchEvents().

[virtual] QRectF QQuickItem::boundingRect() const

Renvoie les dimensions de l'élément dans son propre système de coordonnées : un rectangle allant de 0, 0 à width() et height().

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

Renvoie le premier élément enfant visible trouvé au point (x, y) dans le système de coordonnées de cet élément.

Retourne nullptr s'il n'existe pas d'élément de ce type.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

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

Renvoie les enfants de cet élément.

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

Réimplémentez cette méthode pour filtrer les événements de pointeur reçus par les enfants de cet élément.

Cette méthode ne sera appelée que si filtersChildMouseEvents() est true.

Elle renvoie true si l'événement event spécifié ne doit pas être transmis à l'enfant item spécifié, et false dans le cas contraire. Si vous renvoyez true, vous devez également renvoyer accept ou ignore le event, pour indiquer si la propagation des événements doit s'arrêter ou se poursuivre. L'adresse event sera cependant toujours envoyée à tous les ChildMouseEventFilters de la chaîne parentale.

Remarque : malgré son nom, cette fonction filtre toutes les instances QPointerEvent lors de la transmission à tous les enfants (en général, les événements liés à la souris, au toucher et à la tablette). Lorsque vous remplacez cette fonction dans une sous-classe, nous vous suggérons d'écrire un code générique de gestion des événements en utilisant uniquement les accesseurs trouvés dans QPointerEvent. Vous pouvez également activer event->type() et/ou event->device()->type() pour gérer différents types d'événements de différentes manières.

Remarque : le filtrage n'est qu'un moyen de partager la responsabilité en cas d'ambiguïté gestuelle (par exemple, en cas de pression, vous ne savez pas si l'utilisateur va taper ou glisser). Une autre façon est d'appeler QPointerEvent::addPassiveGrabber() à l'appui, de manière à surveiller de manière non exclusive la progression de QEventPoint. Dans les deux cas, le gestionnaire d'élément ou de pointeur qui surveille peut voler l'exclusivité plus tard, lorsqu'il devient clair que le geste correspond au modèle qu'il attend.

Voir également setFiltersChildMouseEvents().

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

Réimplémente : QQmlParserStatus::classBegin().

Les classes dérivées doivent appeler la méthode de la classe de base avant d'ajouter leur propre action à effectuer à classBegin.

[virtual] QRectF QQuickItem::clipRect() const

Renvoie la zone rectangulaire de cet élément qui est actuellement visible dans viewportItem(), s'il existe une fenêtre de visualisation et si l'indicateur ItemObservesViewport est activé ; sinon, l'étendue de cet élément dans son propre système de coordonnées : un rectangle allant de 0, 0 à width() et height(). Il s'agit de la région destinée à rester visible si clip est true. Elle peut également être utilisée dans updatePaintNode() pour limiter les graphiques ajoutés au graphe de scène.

Par exemple, un grand dessin ou un grand document texte peut être affiché dans un Flickable qui n'occupe qu'une partie de la fenêtre de l'application : dans ce cas, Flickable est l'élément viewport, et un élément de rendu de contenu personnalisé peut choisir d'omettre les nœuds du graphe de scène qui se trouvent en dehors de la zone actuellement visible. Si le drapeau ItemObservesViewport est activé, cette zone changera chaque fois que l'utilisateur fera défiler le contenu de l'élément Flickable.

Dans le cas d'éléments de fenêtre imbriqués, clipRect() est l'intersection des boundingRectde tous les ancêtres pour lesquels l'indicateur ItemIsViewport est activé, dans le système de coordonnées de cet élément.

Voir également boundingRect().

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

Réimplémente : QQmlParserStatus::componentComplete().

Les classes dérivées doivent appeler la méthode de la classe de base avant d'ajouter leurs propres actions à exécuter à componentComplete.

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

Renvoie true si cet élément contient point, qui est en coordonnées locales ; renvoie false dans le cas contraire.

Cette fonction peut être surchargée afin de gérer les collisions de points dans les éléments ayant des formes personnalisées. L'implémentation par défaut vérifie si le point se trouve à l'intérieur de containmentMask() s'il est défini, ou à l'intérieur de la boîte de délimitation dans le cas contraire.

Remarque : cette méthode est utilisée pour tester chaque QEventPoint lors de la livraison de l'événement, de sorte que l'implémentation doit être aussi légère que possible.

Note : Cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

QCursor QQuickItem::cursor() const

Renvoie la forme du curseur pour cet élément.

Le curseur de la souris prendra cette forme lorsqu'il sera au-dessus de cet élément, à moins qu'un curseur prioritaire ne soit défini. Voir list of predefined cursor objects pour une gamme de formes utiles.

Si aucune forme de curseur n'a été définie, cette fonction renvoie un curseur ayant la forme Qt::ArrowCursor. Toutefois, une autre forme de curseur peut être affichée si un élément qui se chevauche a un curseur valide.

Voir également setCursor() et unsetCursor().

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de glisser-déposer d'un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

Les événements de glisser-déposer ne sont fournis que si l'indicateur ItemAcceptsDrops a été activé pour cet élément.

L'événement est accepté par défaut, il n'est donc pas nécessaire de l'accepter explicitement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

Voir également Drag et Drag and Drop.

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de glissement et de sortie d'un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

Les événements de glisser-déposer ne sont fournis que si l'indicateur ItemAcceptsDrops a été activé pour cet élément.

L'événement est accepté par défaut, il n'est donc pas nécessaire de l'accepter explicitement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

Voir également Drag et Drag and Drop.

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de déplacement d'un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

Les événements de glisser-déposer ne sont fournis que si l'indicateur ItemAcceptsDrops a été activé pour cet élément.

L'événement est accepté par défaut, il n'est donc pas nécessaire de l'accepter explicitement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

Voir également Drag et Drag and Drop.

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de chute d'un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

Les événements de glisser-déposer ne sont fournis que si l'indicateur ItemAcceptsDrops a été activé pour cet élément.

L'événement est accepté par défaut, il n'est donc pas nécessaire de l'accepter explicitement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

Voir également Drag et Drag and Drop.

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

Affiche quelques détails sur l'arbre visuel des éléments commençant par cet élément, de manière récursive.

Note : QObject::dumpObjectTree() affiche un arbre similaire ; mais, comme expliqué dans Concepts - Parent visuel dans Qt Quick, le QObject::parent() d'un élément diffère parfois de son QQuickItem::parentItem(). Vous pouvez extraire les deux arbres pour voir la différence.

Note : Le format de sortie exact peut changer dans les versions futures de Qt.

Note : Cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

Cette fonction a été introduite dans Qt 6.3.

Voir également Techniques de débogage et GammaRay's Qt Quick Inspector.

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

Appelle updatePolish()

Cela peut être utile pour des éléments tels que les Layouts (ou Positioners) qui retardent le calcul de leurs implicitWidth et implicitHeight jusqu'à ce qu'ils reçoivent un PolishEvent.

Normalement, si, par exemple, un élément enfant est ajouté ou supprimé d'un Layout, la taille implicite n'est pas immédiatement calculée (il s'agit d'une optimisation). Dans certains cas, il peut être souhaitable d'interroger la taille implicite de la disposition juste après l'ajout d'un élément enfant. Dans ce cas, utilisez cette fonction juste avant de demander la taille implicite.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

Cette fonction a été introduite dans Qt 6.3.

Voir également updatePolish() et polish().

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

Réimplémente : QObject::event(QEvent *e).

bool QQuickItem::filtersChildMouseEvents() const

Indique si les événements de pointeur destinés aux enfants de cet élément doivent être filtrés par cet élément.

Si cet élément et un élément enfant ont tous deux acceptTouchEvents() true, alors lorsqu'une interaction tactile se produit, cet élément filtrera l'événement tactile. Mais si cet élément ou l'élément enfant ne peut pas gérer les événements tactiles, childMouseEventFilter() sera appelé avec un événement souris synthétisé.

Voir également setFiltersChildMouseEvents() et childMouseEventFilter().

QQuickItem::Flags QQuickItem::flags() const

Renvoie les drapeaux de cet élément.

Voir aussi setFlags() et setFlag().

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de mise au point d'un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

L'événement est accepté par défaut, il n'est donc pas nécessaire d'accepter explicitement l'événement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

Si vous réimplémentez cette fonction, vous devez appeler l'implémentation de la classe de base.

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de focus-out d'un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

L'événement est accepté par défaut, il n'est donc pas nécessaire d'accepter explicitement l'événement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

[invokable] void QQuickItem::forceActiveFocus()

Force la focalisation active sur l'élément.

Cette méthode place le focus sur l'élément et garantit que tous les objets ancêtres FocusScope dans la hiérarchie des objets reçoivent également le focus focus.

La raison du changement de focus sera Qt::OtherFocusReason. Utilisez la méthode surchargée pour spécifier la raison du focus afin de permettre une meilleure gestion du changement de focus.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

Voir également activeFocus.

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

Force la focalisation active sur l'élément avec l'adresse reason.

Cette méthode met l'accent sur l'élément et garantit que tous les objets ancêtres FocusScope dans la hiérarchie des objets reçoivent également focus.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

Il s'agit d'une fonction surchargée.

Voir également activeFocus et Qt::FocusReason.

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

Cette fonction est appelée pour gérer les changements de géométrie de cet élément de oldGeometry à newGeometry. Si les deux géométries sont identiques, elle ne fait rien.

Les classes dérivées doivent appeler la méthode de la classe de base dans leur implémentation.

Cette fonction a été introduite dans Qt 6.0.

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

Saisit l'élément dans une image en mémoire.

L'acquisition se fait de manière asynchrone et le signal QQuickItemGrabResult::ready() est émis lorsque l'acquisition est terminée.

Utilisez targetSize pour spécifier la taille de l'image cible. Par défaut, le résultat aura la même taille que l'élément.

Si la saisie n'a pas pu être lancée, la fonction renvoie null.

Remarque : cette fonction rendra l'objet sur une surface hors écran et copiera cette surface de la mémoire du GPU vers la mémoire du CPU, ce qui peut être assez coûteux. Pour une prévisualisation "en direct", utilisez layers ou ShaderEffectSource.

Voir également QQuickWindow::grabWindow().

[protected] bool QQuickItem::heightValid() const

Indique si la propriété "height" a été définie explicitement.

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de survol et d'entrée d'un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

Les événements de survol ne sont fournis que si acceptHoverEvents() est vrai.

L'événement est accepté par défaut, il n'est donc pas nécessaire de l'accepter explicitement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de survol et de sortie d'un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

Les événements de survol ne sont fournis que si acceptHoverEvents() est vrai.

L'événement est accepté par défaut, il n'est donc pas nécessaire de l'accepter explicitement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de survol et de déplacement d'un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

Les événements de survol ne sont fournis que si acceptHoverEvents() est vrai.

L'événement est accepté par défaut, il n'est donc pas nécessaire de l'accepter explicitement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

qreal QQuickItem::implicitWidth() const

Renvoie la largeur de l'élément qui est impliquée par d'autres propriétés qui déterminent le contenu.

Remarque : fonction Getter pour la propriété implicitWidth.

Voir également setImplicitWidth().

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de la méthode d'entrée d'un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

L'événement est accepté par défaut, il n'est donc pas nécessaire d'accepter explicitement l'événement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

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

Cette méthode ne concerne que les éléments de saisie.

Si cet élément est un élément d'entrée, cette méthode doit être réimplémentée pour renvoyer les drapeaux de méthode d'entrée pertinents pour l'élément donné query.

Voir également QWidget::inputMethodQuery().

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

Renvoie true si cet élément est un ancêtre de child (c'est-à-dire si cet élément est le parent de child ou l'un des ancêtres du parent de child).

Voir aussi parentItem().

[protected] bool QQuickItem::isComponentComplete() const

Retourne true si la construction du composant QML est terminée, sinon retourne false.

Il est souvent souhaitable de retarder certains traitements jusqu'à ce que le composant soit terminé.

Voir également componentComplete().

bool QQuickItem::isFocusScope() const

Retourne true si cet élément est une portée de focus, et false dans le cas contraire.

[virtual] bool QQuickItem::isTextureProvider() const

Retourne true si cet élément est un fournisseur de texture. L'implémentation par défaut renvoie false.

Cette fonction peut être appelée depuis n'importe quel thread.

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

Appelé lorsque change se produit pour cet élément.

value contient des informations supplémentaires relatives à la modification, le cas échéant.

Si vous réimplémentez cette méthode dans une sous-classe, assurez-vous d'appeler

QQuickItem::itemChange(change, value);

typiquement à la fin de votre implémentation, pour vous assurer que le signal windowChanged() sera émis.

bool QQuickItem::keepMouseGrab() const

Indique si l'entrée de la souris doit rester exclusivement sur cet élément.

Voir aussi setKeepMouseGrab(), QEvent::accept() et QEvent::ignore().

bool QQuickItem::keepTouchGrab() const

Retourne si les points de contact saisis par cet élément doivent rester exclusivement avec cet élément.

Voir aussi setKeepTouchGrab(), keepMouseGrab(), QEvent::accept() et QEvent::ignore().

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de pression sur une touche pour un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

L'événement est accepté par défaut, il n'est donc pas nécessaire d'accepter explicitement l'événement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de libération des touches d'un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

L'événement est accepté par défaut, il n'est donc pas nécessaire d'accepter explicitement l'événement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

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

Met en correspondance le point donné point dans le système de coordonnées global de l'écran avec le point équivalent dans le système de coordonnées de cet élément, et renvoie la coordonnée mise en correspondance.

Les propriétés suivantes de l'élément sont utilisées dans le mappage : x, y, scale, rotation, transformOrigin, et transform.

Si les éléments font partie de scènes différentes, la correspondance inclut la position relative des deux scènes.

Par exemple, cela peut être utile pour ajouter une fenêtre contextuelle à un composant Qt Quick.

Remarque : le positionnement de la fenêtre est effectué par le gestionnaire de fenêtres et cette valeur n'est traitée que comme une indication. La position de la fenêtre qui en résulte peut donc être différente de celle attendue.

Remarque : si cet élément se trouve dans une sous-scène, par exemple s'il est mappé sur un objet 3D Model, le mappage UV est incorporé dans cette transformation, de sorte qu'elle va réellement des coordonnées de l'écran aux coordonnées de cet élément, tant que point se trouve dans les limites de cet élément. Les autres fonctions de mapping ne fonctionnent pas encore de cette manière.

Note : Cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

Voir aussi Concepts - Coordonnées visuelles dans Qt Quick.

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

Met en correspondance le point donné point dans le système de coordonnées de item avec le point équivalent dans le système de coordonnées de cet élément, et renvoie la coordonnée mise en correspondance.

Les propriétés suivantes de l'élément sont utilisées dans la mise en correspondance : x, y, scale, rotation, transformOrigin, et transform.

Si les éléments font partie de scènes différentes, la correspondance inclut la position relative des deux scènes.

Si item est nullptr, la correspondance se fait avec point à partir du système de coordonnées de la scène.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

Voir également Concepts - Coordonnées visuelles à l'adresse Qt Quick.

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

Met en correspondance le point point dans le système de coordonnées de la scène avec le point équivalent dans le système de coordonnées de cet élément, et renvoie la coordonnée mise en correspondance.

Les propriétés suivantes de l'élément sont utilisées dans la mise en correspondance : x, y, scale, rotation, transformOrigin, et transform.

Si les éléments font partie de scènes différentes, la correspondance inclut la position relative des deux scènes.

Voir aussi Concepts - Coordonnées visuelles dans Qt Quick.

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

Met en correspondance le site rect dans le système de coordonnées de item avec la zone rectangulaire équivalente dans le système de coordonnées de cet élément, et renvoie la valeur du rectangle mis en correspondance.

Les propriétés suivantes de l'élément sont utilisées dans la mise en correspondance : x, y, scale, rotation, transformOrigin, et transform.

Si les éléments font partie de scènes différentes, la correspondance inclut la position relative des deux scènes.

Si item est nullptr, rect est mappé à partir du système de coordonnées de la scène.

Voir également Concepts - Coordonnées visuelles à l'adresse Qt Quick.

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

Met en correspondance le site rect dans le système de coordonnées de la scène avec la zone rectangulaire équivalente dans le système de coordonnées de cet élément, et renvoie la valeur du rectangle mis en correspondance.

Les propriétés suivantes de l'élément sont utilisées dans le mappage : x, y, scale, rotation, transformOrigin, et transform.

Si les éléments font partie de scènes différentes, la correspondance inclut la position relative des deux scènes.

Voir aussi Concepts - Coordonnées visuelles dans Qt Quick.

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

Met en correspondance le site rect dans le système de coordonnées de cet élément avec la zone rectangulaire équivalente dans le système de coordonnées de item, et renvoie la valeur du rectangle mis en correspondance.

Les propriétés suivantes de l'élément sont utilisées dans le mappage : x, y, scale, rotation, transformOrigin, et transform.

Si les éléments font partie de scènes différentes, la correspondance inclut la position relative des deux scènes.

Si item est nullptr, rect est mappé dans le système de coordonnées de la scène.

Voir aussi Concepts - Coordonnées visuelles dans Qt Quick.

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

Met en correspondance le site rect dans le système de coordonnées de l'élément avec la zone rectangulaire équivalente dans le système de coordonnées de la scène, et renvoie la valeur du rectangle mis en correspondance.

Les propriétés suivantes de l'élément sont utilisées dans le mappage : x, y, scale, rotation, transformOrigin, et transform.

Si les éléments font partie de scènes différentes, la correspondance inclut la position relative des deux scènes.

Voir aussi Concepts - Coordonnées visuelles dans Qt Quick.

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

Met en correspondance le point point dans le système de coordonnées de l'élément avec le point équivalent dans le système de coordonnées global de l'écran et renvoie la coordonnée mise en correspondance.

Les propriétés suivantes de l'élément sont utilisées dans le mappage : x, y, scale, rotation, transformOrigin, et transform.

Si les éléments font partie de scènes différentes, la correspondance inclut la position relative des deux scènes.

Par exemple, cela peut être utile pour ajouter une fenêtre contextuelle à un composant Qt Quick.

Remarque : le positionnement de la fenêtre est effectué par le gestionnaire de fenêtres et cette valeur n'est traitée que comme une indication. La position de la fenêtre qui en résulte peut donc être différente de celle attendue.

Note : Cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

Voir également Concepts - Coordonnées visuelles à l'adresse Qt Quick.

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

Met en correspondance le point donné point dans le système de coordonnées de cet élément avec le point équivalent dans le système de coordonnées de item, et renvoie la coordonnée mise en correspondance.

Les propriétés suivantes de l'élément sont utilisées dans la mise en correspondance : x, y, scale, rotation, transformOrigin, et transform.

Si les éléments font partie de scènes différentes, la correspondance inclut la position relative des deux scènes.

Si item est nullptr, la correspondance est établie entre point et le système de coordonnées de la scène.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

Voir également Concepts - Coordonnées visuelles à l'adresse Qt Quick.

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

Met en correspondance le point point dans le système de coordonnées de l'élément avec le point équivalent dans le système de coordonnées de la scène et renvoie la coordonnée mise en correspondance.

Les propriétés suivantes de l'élément sont utilisées dans le mappage : x, y, scale, rotation, transformOrigin, et transform.

Si les éléments font partie de scènes différentes, la correspondance inclut la position relative des deux scènes.

Voir aussi Concepts - Coordonnées visuelles dans Qt Quick.

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de double-clic de la souris pour un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

L'événement est accepté par défaut, il n'est donc pas nécessaire d'accepter explicitement l'événement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de déplacement de la souris pour un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

Pour recevoir les événements de déplacement de la souris, l'événement précédent de pression de la souris doit être accepté (en surchargeant mousePressEvent(), par exemple) et acceptedMouseButtons() doit renvoyer le bouton de la souris correspondant.

L'événement est accepté par défaut, il n'est donc pas nécessaire de l'accepter explicitement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de pression de la souris pour un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

Pour recevoir les événements de pression de la souris, acceptedMouseButtons() doit renvoyer le bouton de la souris correspondant.

L'événement est accepté par défaut, il n'est donc pas nécessaire d'accepter explicitement l'événement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de relâchement de la souris pour un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

Pour recevoir des événements de relâchement de la souris, l'événement précédent d'appui sur la souris doit être accepté (en surchargeant mousePressEvent(), par exemple) et acceptedMouseButtons() doit renvoyer le bouton de la souris correspondant.

L'événement est accepté par défaut, il n'est donc pas nécessaire de l'accepter explicitement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

[virtual protected] void QQuickItem::mouseUngrabEvent()

Ce gestionnaire d'événement peut être réimplémenté dans une sous-classe afin d'être notifié lorsqu'un événement de dégagement de la souris s'est produit sur cet élément.

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

Renvoie l'élément de la chaîne de mise au point qui est le plus proche de cet élément. Si forward est true ou n'est pas fourni, il s'agit de l'élément suivant dans la direction avant. Si forward est false, il s'agit de l'élément suivant dans le sens inverse.

Note : Cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

void QQuickItem::polish()

Planifie un événement de polissage pour cet élément.

Lorsque le graphe de scène traite la demande, il appelle updatePolish() sur cet élément.

Voir aussi updatePolish(), QQuickTest::qIsPolishScheduled() et ensurePolished().

[virtual protected] void QQuickItem::releaseResources()

Cette fonction est appelée lorsqu'un élément doit libérer des ressources graphiques qui ne sont pas déjà gérées par les nœuds renvoyés par QQuickItem::updatePaintNode().

Cela se produit lorsque l'élément est sur le point d'être retiré de la fenêtre dans laquelle il a été rendu précédemment. L'élément est assuré d'avoir un window lorsque la fonction est appelée.

La fonction est appelée sur le fil d'exécution de l'interface graphique et l'état du fil d'exécution du rendu, lorsqu'il est utilisé, est inconnu. Les objets ne doivent pas être supprimés directement, mais plutôt programmés pour être nettoyés à l'aide de QQuickWindow::scheduleRenderJob().

Voir également Graphics Resource Handling.

QQuickItem *QQuickItem::scopedFocusItem() const

Si cet élément est une portée de focalisation, cela renvoie l'élément de sa chaîne de focalisation qui a actuellement la focalisation.

Retourne nullptr si cet élément n'est pas une portée de focalisation.

void QQuickItem::setAcceptHoverEvents(bool enabled)

Si enabled est vrai, cela permet à l'élément d'accepter les événements de survol ; sinon, les événements de survol ne sont pas acceptés par cet élément.

Voir également acceptHoverEvents().

void QQuickItem::setAcceptTouchEvents(bool enabled)

Si enabled est vrai, cela permet à l'élément d'accepter les événements tactiles ; sinon, les événements tactiles ne sont pas acceptés par cet élément.

Voir également acceptTouchEvents().

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

Définit les boutons de souris acceptés par cet élément à buttons.

Remarque : dans Qt 5, l'appel à setAcceptedMouseButtons() entraînait implicitement la réception par un élément d'événements tactiles ainsi que d'événements de souris ; mais il était recommandé d'appeler setAcceptTouchEvents() pour s'y abonner. Dans Qt 6, il est nécessaire d'appeler setAcceptTouchEvents() pour continuer à les recevoir.

Voir aussi acceptedMouseButtons().

void QQuickItem::setCursor(const QCursor &cursor)

Définit la forme de cursor pour cet élément.

Voir aussi cursor() et unsetCursor().

void QQuickItem::setFiltersChildMouseEvents(bool filter)

Définit si les événements de pointeur destinés aux enfants de cet élément doivent être filtrés à travers cet élément.

Si filter est vrai, childMouseEventFilter() sera appelé lorsqu'un événement de pointeur est déclenché pour un élément enfant.

Voir également filtersChildMouseEvents().

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

Active l'indicateur flag spécifié pour cet élément si enabled est vrai ; si enabled est faux, l'indicateur est désactivé.

Par exemple, l'indicateur ItemClipsChildrenToShape indique que tous les enfants de cet élément doivent être coupés pour tenir dans la zone de l'élément.

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

Active l'adresse flags spécifiée pour cet élément.

Voir également flags() et setFlag().

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

Définit la politique de mise au point de cet élément à policy.

Note : Fonction de définition de la propriété focusPolicy.

Voir également focusPolicy().

void QQuickItem::setKeepMouseGrab(bool keep)

Définit si l'entrée de la souris doit rester exclusivement avec cet élément.

Cela est utile pour les éléments qui souhaitent saisir et conserver l'interaction de la souris en suivant un geste prédéfini. Par exemple, un élément qui s'intéresse au mouvement horizontal de la souris peut fixer keepMouseGrab à true une fois qu'un seuil a été dépassé. Une fois que keepMouseGrab a été défini comme vrai, les éléments de filtrage ne réagissent pas aux événements de la souris.

Si keep est faux, un élément de filtrage peut s'emparer de la souris. Par exemple, Flickable peut tenter de voler une saisie de souris s'il détecte que l'utilisateur a commencé à déplacer la fenêtre.

Voir également keepMouseGrab().

void QQuickItem::setKeepTouchGrab(bool keep)

Définit si les points de contact saisis par cet élément doivent rester exclusivement avec cet élément.

Cela est utile pour les éléments qui souhaitent saisir et conserver des points de contact spécifiques à la suite d'un geste prédéfini. Par exemple, un élément qui s'intéresse au mouvement horizontal des points de contact peut définir setKeepTouchGrab sur true une fois qu'un seuil a été dépassé. Une fois que setKeepTouchGrab a été fixé à true, les éléments de filtrage ne réagissent pas aux points de contact concernés.

Si keep est faux, un élément filtrant peut voler la prise. Par exemple, Flickable peut tenter de voler un point de contact s'il détecte que l'utilisateur a commencé à déplacer la fenêtre.

Voir également keepTouchGrab() et setKeepMouseGrab().

void QQuickItem::setSize(const QSizeF &size)

Fixe la taille de l'élément à size. Cette méthode préserve tout lien existant sur la largeur et la hauteur ; ainsi, tout changement qui déclenche l'exécution du lien à nouveau remplacera les valeurs fixées.

Voir également size, setWidth, et setHeight.

QSizeF QQuickItem::size() const

Renvoie la taille de l'élément.

Voir aussi setSize, width, et height.

void QQuickItem::stackAfter(const QQuickItem *sibling)

Déplace cet élément à l'index suivant l'élément frère spécifié dans la liste des enfants. L'ordre des enfants affecte à la fois l'ordre d'empilement visuel et l'ordre de navigation dans les onglets.

En supposant que les valeurs z des deux éléments soient identiques, sibling sera rendu sous cet élément.

Si les deux éléments ont pour valeur activeFocusOnTab true , l'ordre de mise au point des onglets sera également modifié, sibling recevant la mise au point avant cet élément.

Le site sibling doit être un frère de cet élément, c'est-à-dire qu'il doit avoir le même site parent.

Voir également Concepts - Parent visuel dans Qt Quick.

void QQuickItem::stackBefore(const QQuickItem *sibling)

Déplace cet élément à l'index précédant l'élément frère spécifié dans la liste des enfants. L'ordre des enfants affecte à la fois l'ordre d'empilement visuel et l'ordre de navigation dans les onglets.

En supposant que les valeurs z des deux éléments soient identiques, sibling sera rendu au-dessus de cet élément.

Si les deux éléments ont pour valeur activeFocusOnTab true , l'ordre de mise en évidence des onglets sera également modifié, sibling étant mis en évidence après cet élément.

Le site sibling doit être un frère de cet élément, c'est-à-dire qu'il doit avoir le même site parent.

Voir également Concepts - Parent visuel dans Qt Quick.

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

Renvoie le fournisseur de texture d'un élément. L'implémentation par défaut renvoie nullptr.

Cette fonction ne peut être appelée que sur le thread de rendu.

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements tactiles d'un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

L'événement est accepté par défaut, il n'est donc pas nécessaire d'accepter explicitement l'événement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

[virtual protected] void QQuickItem::touchUngrabEvent()

Ce gestionnaire d'événement peut être réimplémenté dans une sous-classe afin d'être notifié lorsqu'un événement de désappropriation tactile s'est produit sur cet élément.

void QQuickItem::unsetCursor()

Efface la forme du curseur pour cet élément.

Voir aussi cursor() et setCursor().

[slot] void QQuickItem::update()

Planifie un appel à updatePaintNode() pour cet article.

L'appel à QQuickItem::updatePaintNode() aura toujours lieu si l'élément est affiché dans une page QQuickWindow.

Seuls les éléments qui spécifient QQuickItem::ItemHasContents sont autorisés à appeler QQuickItem::update().

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

Notifier à la méthode d'entrée les valeurs de requête mises à jour si nécessaire. queries indique les attributs modifiés.

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

Appelée sur le thread de rendu lorsqu'il est temps de synchroniser l'état de l'élément avec le graphe de scène.

La fonction est appelée à la suite de QQuickItem::update(), si l'utilisateur a activé le drapeau QQuickItem::ItemHasContents sur l'élément.

La fonction doit renvoyer la racine du sous-arbre du graphe de scène pour cet élément. La plupart des implémentations renvoient un seul QSGGeometryNode contenant la représentation visuelle de cet élément. oldNode est le nœud qui a été renvoyé la dernière fois que la fonction a été appelée. updatePaintNodeData fournit un pointeur sur le QSGTransformNode associé à ce QQuickItem.

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;
}

Le thread principal est bloqué pendant l'exécution de cette fonction, de sorte qu'il n'y a aucun risque à lire les valeurs de l'instance QQuickItem et d'autres objets dans le thread principal.

Si aucun appel à QQuickItem::updatePaintNode() n'entraîne de modification du graphe de la scène, comme QSGNode::markDirty() ou l'ajout et la suppression de nœuds, l'implémentation sous-jacente peut décider de ne pas effectuer de nouveau rendu de la scène, car le résultat visuel est identique.

Attention : Il est crucial que les opérations graphiques et l'interaction avec le graphe de la scène se produisent exclusivement sur le thread de rendu, principalement pendant l'appel QQuickItem::updatePaintNode(). La meilleure règle est de n'utiliser que des classes avec le préfixe "QSG" à l'intérieur de la fonction QQuickItem::updatePaintNode().

Attention : Cette fonction est appelée sur le thread de rendu. Cela signifie que tout QObject ou stockage local de thread créé aura une affinité avec le thread de rendu, donc soyez prudent si vous faites autre chose que du rendu dans cette fonction. De même, les signaux seront émis par le thread de rendu et seront donc souvent délivrés via des connexions en file d'attente.

Note : Toutes les classes avec le préfixe QSG doivent être utilisées uniquement sur le thread de rendu du graphe de scène. Voir Scene Graph and Rendering pour plus d'informations.

Voir aussi QSGMaterial, QSGGeometryNode, QSGGeometry, QSGFlatColorMaterial, QSGTextureMaterial, QSGNode::markDirty(), et Graphics Resource Handling.

[virtual protected] void QQuickItem::updatePolish()

Cette fonction doit effectuer toute mise en page nécessaire pour cet élément.

Lorsque polish() est appelé, le graphe de scène planifie un événement de polissage pour cet élément. Lorsque le graphe de scène est prêt à effectuer le rendu de cet élément, il appelle updatePolish() pour effectuer la mise en page de l'élément avant d'effectuer le rendu de l'image suivante.

Voir également ensurePolished().

QQuickItem *QQuickItem::viewportItem() const

Si l'indicateur ItemObservesViewport est activé, renvoie le parent le plus proche avec l'indicateur ItemIsViewport. Renvoie l'élément de contenu de la fenêtre si l'indicateur n'est pas activé ou si aucun autre élément de la fenêtre n'est trouvé.

Renvoie nullptr uniquement s'il n'y a pas d'élément dans la fenêtre et si cet élément n'est pas affiché dans une fenêtre.

Voir également clipRect().

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de roue d'un élément. Les informations relatives à l'événement sont fournies par le paramètre event.

L'événement est accepté par défaut, il n'est donc pas nécessaire d'accepter explicitement l'événement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

[protected] bool QQuickItem::widthValid() const

Indique si la propriété width a été définie explicitement.

QQuickWindow *QQuickItem::window() const

Renvoie la fenêtre dans laquelle cet élément est rendu.

L'élément n'a pas de fenêtre tant qu'il n'a pas été affecté à une scène. Le signal windowChanged() permet de notifier à la fois l'entrée de l'élément dans une scène et son retrait d'une scène.

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

Ce signal est émis lorsque l'adresse window de l'élément change.

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