Sur cette page

QQuickItem Class

La classe `QQuickItem` fournit l'élément visuel le plus basique de tous dans Qt Quick. En savoir 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 de :QObject et QQmlParserStatus
Hérité 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 }
(since 6.12) enum MutabilityGroup { AutoMutabilityGroup, StaticMutabilityGroup, ModerateMutabilityGroup, DynamicMutabilityGroup }
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
int mutabilityGroup() const
QQuickItem *nextItemInFocusChain(bool forward = true)
qreal opacity() const
QQuickItem *parentItem() const
void polish()
void resetAntialiasing()
void resetHeight()
void resetWidth()
qreal rotation() const
qreal scale() const
QQuickItem *scopedFocusItem() const
void setAcceptHoverEvents(bool enabled)
void setAcceptTouchEvents(bool enabled)
void setAcceptedMouseButtons(Qt::MouseButtons buttons)
void setActiveFocusOnTab(bool)
void setAntialiasing(bool)
void setBaselineOffset(qreal)
void setClip(bool)
void setContainmentMask(QObject *mask)
void setCursor(const QCursor &cursor)
void setEnabled(bool)
void setFiltersChildMouseEvents(bool filter)
void setFlag(QQuickItem::Flag flag, bool enabled = true)
void setFlags(QQuickItem::Flags flags)
void setFocus(bool)
void setFocus(bool focus, Qt::FocusReason reason)
void setFocusPolicy(Qt::FocusPolicy policy)
void setHeight(qreal)
void setImplicitHeight(qreal)
void setImplicitWidth(qreal)
void setKeepMouseGrab(bool keep)
void setKeepTouchGrab(bool keep)
void setMutabilityGroup(int mutabilityGroup)
void setOpacity(qreal)
void setParentItem(QQuickItem *parent)
void setRotation(qreal)
void setScale(qreal)
void setSize(const QSizeF &size)
void setSmooth(bool)
void setState(const QString &)
void setTransformOrigin(QQuickItem::TransformOrigin)
void setVisible(bool)
void setWidth(qreal)
void setX(qreal)
void setY(qreal)
void setZ(qreal)
QSizeF size() const
bool smooth() const
void stackAfter(const QQuickItem *sibling)
void stackBefore(const QQuickItem *sibling)
QString state() const
virtual QSGTextureProvider *textureProvider() const
QQuickItem::TransformOrigin transformOrigin() const
void unsetCursor()
QQuickItem *viewportItem() const
qreal width() const
QQuickWindow *window() const
qreal x() const
qreal y() const
qreal z() const

Emplacements publics

void update()

Signaux

void containmentMaskChanged()
void windowChanged(QQuickWindow *window)

Fonctions protégées

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

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 d'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 les positions x et y, la largeur et la hauteur, l'ancrage et la prise en charge de la gestion des touches.

Vous pouvez créer une sous-classe de QQuickItem pour fournir votre propre élément visuel personnalisé qui hérite de ces fonctionnalités.

Éléments personnalisés du graphe de scène

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 hautement performante, étroitement liée aux API graphiques accélérées, telles qu’OpenGL, Vulkan, Metal ou Direct 3D. Les sous-classes de `QQuickItem` peuvent ajouter leur propre contenu personnalisé dans le graphe de scène en activant l’indicateur ` QQuickItem::ItemHasContents ` et en réimplémentant la fonction ` QQuickItem::updatePaintNode()`.

Avertissement : il est essentiel que les opérations graphiques et les interactions avec le graphe de scène s'effectuent exclusivement sur le thread de rendu, principalement lors de l'appel à la fonction ` updatePaintNode()`. La meilleure règle à suivre consiste à n'utiliser que les classes portant le préfixe « QSG » à l'intérieur de la fonction ` QQuickItem::updatePaintNode()`.

Remarque : toutes les classes préfixées par « QSG » doivent être utilisées exclusivement sur le thread de rendu du graphe de scène. Voir Graphe de scène et rendu pour plus d’informations.

Gestion des ressources graphiques

La méthode recommandée pour gérer le nettoyage des ressources graphiques utilisées dans le graphe de scène consiste à s’appuyer sur le nettoyage automatique des nœuds. Un objet ` QSGNode ` renvoyé par ` QQuickItem::updatePaintNode()` est automatiquement supprimé sur le bon thread au bon moment. Les arborescences d’instances ` QSGNode ` sont gérées via l’utilisation de ` QSGNode::OwnedByParent`, qui est activé par défaut. Ainsi, pour la majorité des éléments personnalisés du graphe de scène, aucune intervention supplémentaire ne sera nécessaire.

Les implémentations qui stockent des ressources graphiques en dehors de l’arborescence des nœuds, telles qu’un élément implémentant ` QQuickItem::textureProvider()`, devront veiller à les nettoyer correctement en fonction de la manière 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, selon la plateforme et la configuration de ` QQuickWindow `, lorsque la fenêtre est masqué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 tandis que le thread de l’interface graphique est bloqué. Cela équivaut à se connecter à ` QQuickWindow::sceneGraphInvalidated()`. Lors du rendu via OpenGL, le contexte OpenGL de la fenêtre de cet élément sera lié lorsque ce slot sera appelé. La seule exception concerne le cas où l’OpenGL natif a été détruit hors du contrôle de Qt, par exemple via 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é défini sur ` null ` ou qu’il s’agit d’un élément d’une autre fenêtre, la fonction ` QQuickItem::releaseResources()` sera appelée sur le thread de l’interface graphique. La fonction ` 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 dont il dispose. Si aucune des deux conditions ci-dessus n’était déjà remplie, l’élément fera partie d’une fenêtre et il est possible d’utiliser ` QQuickWindow::scheduleRenderJob()` pour les faire nettoyer. Si une implémentation ignore l’appel à ` QQuickItem::releaseResources()`, l’élément n’aura dans de nombreux cas plus accès à un ` QQuickWindow ` et n’aura donc aucun moyen de planifier le nettoyage.

Lors de la planification du nettoyage des ressources graphiques à l’aide de ` QQuickWindow::scheduleRenderJob()`, il convient d’utiliser soit ` QQuickWindow::BeforeSynchronizingStage `, soit ` QQuickWindow::AfterSynchronizingStage`. L’étape de synchronisation correspond au moment où le graphe de scène est modifié à la suite de changements apportés à l’arborescence QML. Si le nettoyage est planifié à tout autre moment, cela peut entraîner que d’autres parties du graphe de scène continuent de référencer les objets nouvellement supprimés, car ces parties n’ont pas été mises à jour.

Remarque : l’utilisation de QObject::deleteLater() pour nettoyer les ressources graphiques est fortement déconseillée, car cela entraînerait l’exécution de l’opération delete à un moment aléatoire et il est impossible de savoir si un contexte OpenGL sera lié au moment où la suppression aura lieu.

Éléments QPainter personnalisés

La classe QQuickItem fournit une sous-classe, QQuickPaintedItem, qui permet aux utilisateurs d’afficher du contenu à l’aide de QPainter.

Avertissement : l’utilisation de QQuickPaintedItem implique le recours à une surface 2D indirecte pour le rendu de son contenu, via une rastérisation logicielle ; le rendu s’effectue donc en deux étapes. Il faut d’abord rastériser la surface, puis la dessiner. L’utilisation directe de l’API du graphe de scène est toujours nettement plus rapide.

Animations de comportement

Si votre élément utilise le type ` Behavior ` pour définir des animations liées aux modifications de propriétés, vous devez toujours utiliser soit ` QObject::setProperty()`, `QQmlProperty()`, soit ` QMetaProperty::write()` lorsque vous devez modifier ces propriétés depuis C++. Cela garantit que le moteur QML prend en compte la modification de propriété. Sinon, le moteur ne sera pas en mesure d'exécuter l'animation demandée. Notez que ces fonctions entraînent une légère perte de performances. Pour plus de détails, consultez la section Accès aux membres d'un type d'objet QML depuis C++.

Voir également « QQuickWindow » et « QQuickPaintedItem ».

Documentation sur les types de membres

enum QQuickItem::Flag
flags QQuickItem::Flags

Ce type d'énumération sert à définir diverses propriétés des éléments.

ConstanteValeurDescription
QQuickItem::ItemClipsChildrenToShape0x01Indique que cet élément doit recadrer visuellement ses enfants afin qu’ils ne soient affichés que dans les 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 zone de focus. Pour plus d'informations, consultez la section « Focus clavier » dans Qt Quick.
QQuickItem::ItemHasContents0x08Indique que l'élément possède un contenu visuel et 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 d'affichage 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 une définition de type (typedef) pour QFlags<Flag>. Il stocke une combinaison OR de valeurs Flag.

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

enum QQuickItem::ItemChange

Utilisé en association avec QQuickItem::itemChange() pour signaler à l'élément certains types de modifications.

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é à une scène ou supprimé de celle-ci. L'QQuickWindow qui affiche la scène est spécifiée à l'aide de ItemChangeData::window. Le paramètre window est nul lorsque l'élément est supprimé 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 rapport de pixels de l’écran sur lequel se trouve l’élément a changé. ItemChangedData::realValue contient le nouveau rapport de pixels.
QQuickItem::ItemAntialiasingHasChanged8L'anticrénelage a changé. La valeur actuelle (booléenne) se trouve dans ` QQuickItem::antialiasing`.
QQuickItem::ItemEnabledHasChanged10L’état d’activation de l’élément a changé. ItemChangeData::boolValue contient le nouvel état d’activation. (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, l’ transformOrigin ou les transformations associées de l’élément changent. ItemChangeData::item contient l’élément à l’origine du changement. (depuis Qt 6.9)

[since 6.12] enum QQuickItem::MutabilityGroup

Cette énumération fournit des valeurs prédéfinies pouvant être utilisées pour la propriété « mutabilityGroup ».

ConstanteValeurDescription
QQuickItem::AutoMutabilityGroup0x0Groupe de mutabilité par défaut.
QQuickItem::StaticMutabilityGroup0x1Indique que l'élément est rarement, voire jamais, mis à jour.
QQuickItem::ModerateMutabilityGroup0x8Indique que l'élément est mis à jour assez souvent.
QQuickItem::DynamicMutabilityGroup0xfIndique que l'élément est mis à jour souvent / à chaque image.

Cette énumération a été introduite dans Qt 6.12.

enum QQuickItem::TransformOrigin

Détermine le point par rapport auquel s’appliquent les transformations simples telles que la mise à l’échelle.

ConstanteValeurDescription
QQuickItem::TopLeft0Le coin supérieur gauche de l'élément.
QQuickItem::Top1Le point central de la partie supérieure de l'élément.
QQuickItem::TopRight2Le coin supérieur droit de l'élément.
QQuickItem::Left3Le point le plus à gauche de la ligne médiane verticale.
QQuickItem::Center4Le centre de l'élément.
QQuickItem::Right5Le point le plus à droite de la ligne médiane verticale.
QQuickItem::BottomLeft6Le coin inférieur gauche de l'élément.
QQuickItem::Bottom7Le point central de la partie inférieure de l'élément.
QQuickItem::BottomRight8Le coin inférieur droit de l'élément.

Voir également transformOrigin() et setTransformOrigin().

Documentation des 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 les entrées clavier, soit il s'agit d'un ancêtre de type FocusScope de l'élément qui reçoit actuellement les entrées clavier.

En général, on obtient le focus actif en définissant la propriété « focus » sur un élément et sur les objets « FocusScope » qui l'entourent. Dans l'exemple suivant, les objets « input » et « focusScope » auront le focus actif, contrairement à l'objet « rectangle » racine.

import QtQuick 2.0

Rectangle {
    width: 100; height: 100

    FocusScope {
        focus: true

        TextInput {
            id: input
            focus: true
        }
    }
}

Fonctions d’accès :

bool hasActiveFocus() const

Voir également « focus » et « Focus clavier » dans « Qt Quick ».

activeFocusOnTab : bool

Cette propriété détermine si l'élément souhaite faire partie de la chaîne de focus des onglets. Par défaut, elle est définie sur « false ».

Remarque : « tabFocusBehavior » peut limiter davantage le focus à certains types de contrôles spécifiques, tels que les contrôles de texte ou de liste. C’est le cas sous macOS, où le focus sur certains contrôles peut être restreint en fonction des paramètres système.

Fonctions d'accès :

bool activeFocusOnTab() const
void setActiveFocusOnTab(bool)

Voir également QStyleHints::tabFocusBehavior et focusPolicy.

antialiasing : bool

Indique si l'élément bénéficie ou non d'un lissage

Utilisé par les éléments visuels pour déterminer si l'élément doit utiliser l'anticrénelage ou non. Dans certains cas, les éléments avec anticrénelage nécessitent davantage de mémoire et peuvent être plus lents à afficher (voir Anticrénelage pour plus de détails).

La valeur par défaut est « false », mais elle peut être redéfinie par des éléments dérivés.

Fonctions d'accès :

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

baselineOffset : qreal

Spécifie la position de la ligne de base de l'élément dans le système de coordonnées local.

La ligne de base d’un élément « Text » est la ligne imaginaire sur laquelle repose le texte. Les contrôles contenant du texte définissent généralement leur ligne de base sur celle de leur texte.

Pour les éléments non textuels, un décalage par défaut de 0 est utilisé pour la ligne de base.

Fonctions d’accès :

qreal baselineOffset() const
void setBaselineOffset(qreal)

[read-only] childrenRect : QRectF

Cette propriété contient la position et la taille cumulées des éléments 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 ce dernier.

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

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

clip : bool

Cette propriété indique si le découpage est activé. La valeur par défaut du découpage est false.

Si le découpage est activé, un élément découpera son propre tracé, ainsi que celui de ses éléments enfants, pour les limiter à son rectangle de délimitation. Si vous activez le découpage pendant l'opération de dessin d'un élément, n'oubliez pas de le désactiver ensuite pour éviter de découper le reste de votre scène.

Remarque : le découpage peut affecter les performances de rendu. Voir Découpage pour plus d’informations.

Remarque : pour des raisons liées à QML, définir clip sur true active également le drapeau ItemIsViewport, ce qui constitue parfois une optimisation : les éléments enfants dotés du drapeau ItemObservesViewport peuvent renoncer à créer des nœuds du graphe de scène situés en dehors de la fenêtre d’affichage. Toutefois, le drapeau ItemIsViewport peut également être défini indépendamment.

Fonctions d’accès :

bool clip() const
void setClip(bool)

containmentMask : QObject*

Cette propriété contient un masque facultatif destiné à être utilisé dans la méthode contains(), qui sert principalement à effectuer un test de collision sur chaque QPointerEvent.

Par défaut, la méthode ` contains()` renvoie ` true ` pour tout point situé à l’intérieur du cadre de délimitation de l’élément. Cependant, tout objet de type ` QQuickItem` ou tout objet de type ` QObject ` qui implémente une fonction de la forme

Q_INVOKABLE bool contains(const QPointF &point) const;

peut être utilisé comme masque, afin de déléguer le test de collision à cet objet.

Remarque : la méthode ` contains()` est appelée fréquemment lors de la transmission des événements. Le fait de déléguer le test de collision à un autre objet ralentit quelque peu ce processus. La méthode `containmentMask()` peut entraîner des problèmes de performances si la méthode ` contains()` de cet objet n’est pas efficace. Si vous implémentez une sous-classe personnalisée de ` QQuickItem `, vous pouvez également redéfinir la méthode ` contains()`.

Fonctions d’accès :

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

Signal du notificateur :

void containmentMaskChanged()

Voir également ` contains()`.

enabled : bool

Cette propriété indique si l'élément reçoit les événements de la souris et du clavier. Par défaut, elle est définie sur « true ».

La définition de cette propriété affecte directement la valeur « enabled » des éléments enfants. Lorsqu’elle est définie sur « false », les valeurs « enabled » de tous les éléments enfants deviennent également « false ». Lorsqu’elle est définie sur « true », les valeurs « enabled » des éléments enfants reviennent à « true », sauf si elles ont été explicitement définies sur « false ».

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

Remarque : les événementsde survol sont activés séparément par la méthode ` setAcceptHoverEvents()`. Ainsi, un élément désactivé peut continuer à recevoir des événements de survol, même lorsque cette propriété est définie sur ` false`. Cela permet d’afficher des informations de retour (telles que ` ToolTip`) même lorsqu’un élément interactif est désactivé. Il en va de même pour tout élément ` HoverHandlers ` ajouté en tant qu’enfant de l’élément. Un « HoverHandler » peut toutefois être explicitement défini sur « disabled », ou par exemple être lié à l’état « enabled » de l’élément.

Fonctions d’accès :

bool isEnabled() const
void setEnabled(bool)

Voir également visible.

focus : bool

Cette propriété s'applique que l'élément soit ou non actif au sein de l'FocusScope qui l'entoure. Si elle est définie sur « true », cet élément deviendra actif lorsque l'FocusScope qui l'entoure deviendra active.

Dans l’exemple suivant, input recevra le focus actif lorsque scope recevra le focus actif :

import QtQuick 2.0

Rectangle {
    width: 100; height: 100

    FocusScope {
        id: scope

        TextInput {
            id: input
            focus: true
        }
    }
}

Dans le cadre de cette propriété, la scène dans son ensemble est considérée comme une zone de focus. Concrètement, cela signifie que le code QML suivant attribuera 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)

Voir également activeFocus et « Focalisation du clavier » dans Qt Quick.

[since 6.7] focusPolicy : Qt::FocusPolicy

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

Cette énumération a été introduite dans Qt 6.7.

Fonctions d'accès :

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

[bindable] height : qreal

Remarque : cette propriété prend en charge les liaisons de type « QProperty ».

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

Fonctions d'accès :

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

implicitHeight : qreal

implicitWidth : qreal

Définit la largeur ou la hauteur souhaité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 un enfant d’une mise en page, celle-ci déterminera la taille préférée de l’élément à l’aide de sa taille implicite. Dans ce cas, les valeurs explicites width ou height seront ignorées.

La taille implicite par défaut de la plupart des éléments est 0x0, mais certains éléments possèdent une taille implicite inhérente qui ne peut pas être redéfinie, par exemple Image et Text.

La définition de la taille implicite est utile pour définir des composants dont la taille est déterminé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 de ` TextEdit ` et la définition explicite de la largeur entraînent une perte de performances, car le texte doit être mis en page deux fois.

[since 6.12] mutabilityGroup : int

Indication au moteur de rendu concernant la fréquence des modifications d'un élément

Il s'agit d'une propriété avancée pouvant être utilisée pour des optimisations de bas niveau. Elle sert d'indication au moteur de rendu concernant la fréquence à laquelle un élément sera mis à jour. Dans les cas d'utilisation courants, il suffit de laisser cette propriété à sa valeur par défaut (QQuickItem::AutoMutabilityGroup (0)).

Cependant, dans certains cas, une analyse des performances peut révéler des goulots d’étranglement que le comportement par défaut du moteur de rendu Qt Quick n’a pas pu optimiser. Cela se produit généralement lorsque des géométries mises à jour rapidement sont regroupées avec des géométries statiques. Pour éviter cela, vous pouvez par exemple essayer d’attribuer les composants mis à jour rapidement à QQuickItem::DynamicMutabilityGroup. Les géométries issues de groupes de mutabilité différents ne seront pas regroupées.

Le groupe de mutabilité s’applique uniquement à l’élément lui-même. Il ne se propage pas aux enfants.

Consultez la page « Rendu par défaut du graphe de scène d’ Qt Quick » (Qt Quick ) pour plus d’informations sur le fonctionnement interne du moteur de rendu du graphe de scène d’ et le regroupement des géométries.

Remarque : la plage numérique valide des groupes de mutabilité est comprise entre [0 et 15]. La propriété sera limitée à cette plage. Par convention, la fréquence est censée augmenter avec la valeur numérique du groupe.

Cette énumération a été introduite dans Qt 6.12.

Fonctions d’accès :

int mutabilityGroup() const
void setMutabilityGroup(int mutabilityGroup)

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 (entièrement transparent) et 1,0 (entièrement opaque). La valeur par défaut est 1,0.

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

Les valeurs situées en dehors de l’intervalle compris entre 0 et 1 seront limitées.

Des rectangles rouges et bleus à opacité maximale

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

Les rectangles rouges et bleus sont tous deux semi-transparents, l'opacité de leur élément parent étant de 0,5.

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’a aucune incidence sur sa capacité à recevoir des événements d’entrée utilisateur. (En revanche, définir la propriété ` visible ` sur ` false ` bloque les événements de souris, et définir la propriété ` enabled ` sur ` false ` bloque les événements de souris et de clavier, tout en retirant le focus actif de l’élément.)

Fonctions d’accès :

qreal opacity() const
void setOpacity(qreal)

Voir également 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 parent d'QObject . Le parent visuel d'un élément n'est pas nécessairement le même que son parent d' . Pour plus de détails, consultez la section « Concepts - Parent visuel » à l'adresse Qt Quick.

Remarque : le signal de notification associé à 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 la fonction qobject_cast pour vérifier que les éléments de la hiérarchie du parent peuvent être utilisés en toute sécurité en tant que type attendu.

Fonctions d’accès :

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

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 axe d'transformOrigin.

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

Carré rouge tourné de 30 degrés à l'intérieur d'un carré bleu

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)

Voir également « Transform » et « Rotation ».

scale : qreal

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

Un facteur d'échelle inférieur à 1,0 entraîne l'affichage de l'élément dans une taille réduite, tandis qu'un facteur d'échelle supérieur à 1,0 entraîne son affichage dans une taille plus grande. Un facteur d'échelle négatif entraîne l'inversion de l'élément lors de son affichage.

La valeur par défaut est 1,0.

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

Carrés bleus et rouges avec une mise à l'échelle et un positionnement spécifiques

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)

Voir également Transform et Scale.

smooth : bool

Indique si l'élément fait l'objet d'un lissage ou non

Principalement utilisé dans les éléments basés sur des images pour déterminer si l'élément doit utiliser un échantillonnage lissé ou non. L'échantillonnage lissé est effectué à l'aide d'une interpolation linéaire, tandis que l'échantillonnage non lissé est effectué à l'aide de la méthode du plus proche voisin.

Dans la version 2.0 d'Qt Quick, cette propriété a un impact minime sur les performances.

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

Fonctions d'accès :

bool smooth() const
void setSmooth(bool)

state : QString

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

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

Fonctions d'accès :

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

Voir aussi États d’Qt Quick .

transformOrigin : TransformOrigin

Cette propriété définit le point d'origine autour duquel s'effectuent les transformations d'échelle et de rotation.

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

Rectangle indiquant neuf points d'origine de transformation : en haut à gauche, en haut, en haut à droite, à gauche, au centre, à droite, en bas à gauche, en bas, en bas à droite

Fonctions d'accès :

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

visible : bool

Cette propriété indique si l'élément est visible. Par défaut, sa valeur est « true ».

La définition de cette propriété affecte directement la valeur « visible » des éléments enfants. Lorsqu’elle est définie sur « false », les valeurs « visible » de tous les éléments enfants deviennent également « false ». Lorsqu’elle est définie sur « true », les valeurs « visible » des éléments enfants reviennent à « true », à moins qu’elles n’aient été explicitement définies sur « false ».

(En raison de ce comportement induit, l’utilisation de la propriété visible peut ne pas produire l’effet escompté si une liaison de propriété ne doit répondre qu’aux modifications explicites de la propriété. Dans de tels cas, il peut être préférable d’utiliser plutôt la propriété opacity.)

Si cette propriété est définie sur ` false`, l’élément ne recevra plus d’événements de souris, mais continuera à recevoir des événements de clavier et conservera la propriété ` focus ` si celle-ci a été définie. (En revanche, définir la propriété ` enabled ` sur ` false ` interrompt à la fois les événements de souris et de clavier, et retire également le focus de l’élément.)

Remarque : la valeur decette propriété n’est affectée que par les modifications apportées à cette propriété ou à la propriété ` visible ` de l’élément parent. Elle ne change pas, par exemple, si cet élément sort de l’écran ou si l’ opacity passe à 0. Cependant, pour des raisons historiques, cette propriété est à « true » après la construction de l’élément, même si celui-ci 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 associé à cette propriété est émis lors de la destruction du parent visuel. Les gestionnaires de signaux C++ ne doivent pas supposer que les éléments de la hiérarchie du parent visuel sont encore entièrement construits. Utilisez la fonction ` qobject_cast ` pour vérifier que les éléments de la hiérarchie du parent peuvent être utilisés en toute sécurité en tant que type attendu.

Fonctions d’accès :

bool isVisible() const
void setVisible(bool)

Voir également opacity et enabled.

[bindable] width : qreal

Remarque : cette propriété prend en charge les liaisons de type « QProperty ».

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

Fonctions d'accès :

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

[bindable] x : qreal

Remarque : cette propriété prend en charge les liaisons de type « QProperty ».

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

Fonctions d'accès :

qreal x() const
void setX(qreal)

[bindable] y : qreal

Remarque : cette propriété prend en charge les liaisons de type « QProperty ».

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

Fonctions d'accès :

qreal y() const
void setY(qreal)

z : qreal

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

Les éléments ayant une valeur d'empilement supérieure sont affichés par-dessus les éléments frères ayant une valeur d'empilement inférieure. Les éléments ayant la même valeur d'empilement sont affichés de bas en haut, dans l'ordre où ils apparaissent. Les éléments ayant une valeur d'empilement négative sont affichés sous le contenu de leur élément parent.

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

Un rectangle bleu au-dessus d'un rectangle rouge, puis un autre rectangle superposé par-dessus

Même « z » : les enfants créés en dernier apparaissent au-dessus des enfants créés en premier :
Item {
    Rectangle {
        color: "red"
        width: 100; height: 100
    }
    Rectangle {
        color: "blue"
        x: 50; y: 50; width: 100; height: 100
    }
}

Le rectangle rouge au-dessus du bleu ; celui dont la valeur z est la plus élevée est superposé à l'autre

z plus élevé au-dessus :
Item {
    Rectangle {
        z: 1
        color: "red"
        width: 100; height: 100
    }
    Rectangle {
        color: "blue"
        x: 50; y: 50; width: 100; height: 100
    }
}

Rectangle bleu au-dessus du rouge, enfant superposé au parent

Même « 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
        }
    }
}

Rectangle rouge au-dessus du bleu, valeur z négative superposée sous l'élément parent

z inférieure ci-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)

Documentation sur les fonctions membres

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

Crée un objet `QQuickItem` à partir de l'parent` fourni.

L'parent sera utilisé à la fois comme parent de l'visual parent et de l'QObject.

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

Supprime l'QQuickItem.

bool QQuickItem::acceptHoverEvents() const

Indique si les événements de survol sont pris en charge 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 via les fonctions hoverEnterEvent(), hoverMoveEvent() et hoverLeaveEvent().

Voir également setAcceptHoverEvents().

bool QQuickItem::acceptTouchEvents() const

Indique si cet élément accepte les événements tactiles.

La valeur par défaut est « false ».

Si cette valeur est « false », l'élément ne recevra aucun événement tactile via la fonction touchEvent().

Voir également setAcceptTouchEvents().

Qt::MouseButtons QQuickItem::acceptedMouseButtons() const

Renvoie les boutons de souris pris en charge par cet élément.

La valeur par défaut est Qt::NoButton; cela signifie qu'aucun bouton de souris n'est pris en charge.

Si un élément n'accepte pas le bouton de souris pour un événement de souris particulier, cet événement ne sera pas transmis à cet élément, mais 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 limites 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.

Renvoie nullptr s'il n'existe aucun élément de ce type.

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

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

Renvoie les éléments 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 éléments enfants de cet élément.

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

Renvoyez ` true ` si l’événement spécifié ` event ` ne doit pas être transmis à l’enfant spécifié ` item`, et ` false ` dans le cas contraire. Si vous renvoyez ` true`, vous devez également ` accept ` ou ` ignore ` l’événement ` event`, afin d’indiquer si la propagation de l’événement doit s’arrêter ou se poursuivre. L’événement ` event ` sera toutefois toujours envoyé à tous les `childMouseEventFilters` en amont dans la chaîne parentale.

Remarque : malgré son nom, cette fonction filtre toutes les instances de ` QPointerEvent ` lors de leur transmission à tous les enfants (généralement les événements de souris, tactiles et de tablette). Lorsque vous redéfinissez cette fonction dans une sous-classe, nous vous recommandons d’écrire un code générique de gestion des événements en utilisant uniquement les accesseurs disponibles 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 parmi d’autres de partager la responsabilité en cas d’ambiguïté gestuelle (par exemple, lors d’une pression, vous ne savez pas si l’utilisateur va appuyer ou faire glisser). Une autre méthode consiste à appeler ` QPointerEvent::addPassiveGrabber()` lors d’une pression, afin de surveiller de manière non exclusive la progression de l’ QEventPoint. Dans les deux cas, le gestionnaire d’élément ou de pointeur qui effectue la surveillance peut récupérer le contrôle exclusif ultérieurement, lorsqu’il apparaît clairement que le geste correspond au modèle attendu.

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 à exécuter dans `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 d’affichage et que l’indicateur ` ItemObservesViewport ` est activé ; sinon, renvoie les limites 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 éléments graphiques ajoutés au graphe de scène.

Par exemple, un dessin de grande taille ou un document texte volumineux peut s’afficher dans un Flickable qui n’occupe qu’une partie de la fenêtre de l’application : dans ce cas, Flickable est l’élément de fenêtre d’affichage, 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 l’indicateur « ItemObservesViewport » est activé, cette zone changera à chaque fois que l’utilisateur fera défiler le contenu dans le Flickable.

Dans le cas d’éléments de fenêtre d’affichage imbriqués, clipRect() correspond à l’intersection des zones de découpe ( boundingRect) de tous les ancêtres pour lesquels l’indicateur « ItemIsViewport » est activé, reportée 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 lors de l'événement `componentComplete`.

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

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

Cette fonction peut être redéfinie 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 du cadre de délimitation dans le cas contraire.

Remarque : cette méthode est utilisée pour le test de collision de chaque QEventPoint lors de la transmission des événements ; son implémentation doit donc être aussi légère que possible.

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

QCursor QQuickItem::cursor() const

Renvoie la forme du curseur correspondant à cet élément.

Le curseur de la souris prendra cette forme lorsqu’il se trouvera au-dessus de cet élément, à moins qu’un curseur de remplacement ne soit défini. Consultez la page list of predefined cursor objects pour découvrir toute une gamme de formes utiles.

Si aucune forme de curseur n'a été définie, cette fonction renvoie un curseur dont la forme correspond à celle de l'Qt::ArrowCursor; toutefois, une autre forme de curseur peut s'afficher si un élément qui se superpose à celui-ci dispose d'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 afin de recevoir les événements « drag-enter » pour 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 disponibles 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 « Glisser-déposer ».

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements « drag-leave » pour 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 disponibles 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 « Glisser-déposer ».

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de glisser-déplacer pour 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 « Glisser-déposer ».

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de dépôt 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 « Glisser-déposer ».

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

Affiche certaines informations concernant l'arborescence visuelle des éléments à partir de cet élément, de manière récursive.

Remarque : la fonction ` QObject::dumpObjectTree()` génère une arborescence similaire ; cependant, comme expliqué dans la section « Concepts - Parent visuel » à l'adresse Qt Quick, la fonction ` QObject::parent()` d'un élément diffère parfois de la fonction ` QQuickItem::parentItem()`. Vous pouvez générer les deux arborescences pour constater la différence.

Remarque : le format exact de la sortie est susceptible de changer dans les futures versions de Qt.

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

Cette fonction a été introduite dans Qt 6.3.

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

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

Appelle la méthode updatePolish()

Cela peut s'avérer utile pour des éléments tels que les Layouts (ou les 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’une mise en page, la taille implicite n’est pas calculée immédiatement (il s’agit d’une optimisation). Dans certains cas, il peut être souhaitable d'interroger la taille implicite de la mise en page immédiatement après l'ajout d'un élément enfant. Si tel est le cas, utilisez cette fonction juste avant d'interroger la taille implicite.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis 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 éléments enfants de cet élément doivent être filtrés par cet élément.

Si cet élément et un de ses enfants ont tous deux défini acceptTouchEvents() true, alors lorsqu’une interaction tactile se produit, cet élément filtrera l’événement tactile. Mais si cet élément ou son 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 indicateurs associés à cet élément.

Voir également setFlags() et setFlag().

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

Ce gestionnaire d'événement peut être réimplémenté dans une sous-classe afin de recevoir les événements « focus-in » 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 de l'accepter explicitement 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 parente.

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de perte de focus 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 de l'accepter explicitement si vous réimplémentez cette fonction. Si vous n'acceptez pas l'événement, appelez event->ignore().

[invokable] void QQuickItem::forceActiveFocus()

Met l'élément au premier plan.

Cette méthode place le focus sur l’élément et garantit que tous les objets ancêtres de type « 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 appelée via le système de méta-objets et depuis QML. Voir ` Q_INVOKABLE`.

Voir également activeFocus.

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

Permet de placer le focus sur l'élément dont l'reason est spécifiée.

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

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis 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 modifications de la 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 parente dans leur implémentation.

Cette fonction a été introduite dans Qt 6.0.

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

Récupère l'élément dans une image en mémoire.

La capture s'effectue de manière asynchrone et le signal QQuickItemGrabResult::ready() est émis une fois la capture 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 capture n'a pas pu être lancée, la fonction renvoie ` null`.

Remarque : cette fonction effectue le rendu de l’élément sur une surface hors écran et copie cette surface de la mémoire du GPU vers celle du CPU, ce qui peut s’avérer assez coûteux en ressources. Pour un aperçu « 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 afin de recevoir les événements « hover-enter » pour 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 défini sur true.

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 afin de recevoir les événements « hover » et « leave » pour 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 défini sur true.

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 afin de recevoir les événements « hover-move » 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() vaut true.

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 telle qu'elle est déterminée par d'autres propriétés qui définissent son contenu.

Remarque : fonctiongetter pour la propriété implicitWidth.

Voir aussi setImplicitWidth().

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements liés à la méthode de saisie 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 de l'accepter explicitement 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 s'applique qu'aux éléments de saisie.

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

Voir aussi 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 également parentItem().

[protected] bool QQuickItem::isComponentComplete() const

Renvoie « true » si la construction du composant QML est terminée ; sinon, renvoie « false ».

Il est souvent souhaitable de différer certaines opérations jusqu’à ce que le composant soit entièrement chargé.

Voir également ` componentComplete()`.

bool QQuickItem::isFocusScope() const

Renvoie « true » si cet élément est une lunette de visée, et « false » dans le cas contraire.

[virtual] bool QQuickItem::isTextureProvider() const

Renvoie « true » si cet élément est un fournisseur de textures. 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ée lorsqu'un événement « 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, veillez à appeler

QQuickItem::itemChange(change, value);

généralement à la fin de votre implémentation, afin de garantir que le signal ` windowChanged()` sera émis.

bool QQuickItem::keepMouseGrab() const

Indique si les événements de souris doivent être exclusivement attribués à cet élément.

Voir également setKeepMouseGrab(), QEvent::accept() et QEvent::ignore().

bool QQuickItem::keepTouchGrab() const

Indique si les points de contact capturés par cet élément doivent rester exclusivement associés à celui-ci.

Voir également 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 afin de recevoir les événements de frappe associés à 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 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::keyReleaseEvent(QKeyEvent *event)

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de relâchement de 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 de l'accepter explicitement 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

Associe l'point e donnée dans le système de coordonnées global de l'écran au point équivalent dans le système de coordonnées de cet élément, puis renvoie la coordonnée associée.

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

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

Cela peut par exemple s’avérer utile pour ajouter une fenêtre contextuelle à un composant Qt Quick.

Remarque : le positionnementde la fenêtre est géré par le gestionnaire de fenêtres et cette valeur n’est considérée que comme une indication. La position finale de la fenêtre peut donc différer de celle attendue.

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

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

Voir également Concepts - Coordonnées visuelles sur Qt Quick.

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

Mappe l'point on fournie dans le système de coordonnées de item vers le point équivalent dans le système de coordonnées de cet élément, puis renvoie la coordonnée mappée.

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

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

Si ` item ` est ` nullptr`, cela effectue le mappage de ` point ` à partir du système de coordonnées de la scène.

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

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

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

Associe les coordonnées point données dans le système de coordonnées de la scène au point équivalent dans le système de coordonnées de cet élément, puis renvoie la coordonnée associée.

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

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

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

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

Mappe l'rect on fournie dans le système de coordonnées de item vers la zone rectangulaire équivalente dans le système de coordonnées de cet élément, puis renvoie la valeur du rectangle ainsi mappé.

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 mise en correspondance inclut la position relative des deux scènes.

Si ` item ` est ` nullptr`, cela effectue une projection de ` rect ` à partir du système de coordonnées de la scène.

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

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

Mappe les coordonnées rect données dans le système de coordonnées de la scène vers la zone rectangulaire équivalente dans le système de coordonnées de cet élément, puis renvoie la valeur du rectangle obtenu.

Les propriétés suivantes de l’élément sont utilisées pour 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 également Concepts - Coordonnées visuelles sur Qt Quick.

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

Mappe l'rect donné dans le système de coordonnées de cet élément vers la zone rectangulaire équivalente dans le système de coordonnées de item, puis renvoie la valeur du rectangle obtenu.

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

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

Si item vaut nullptr, cela mappe rect au système de coordonnées de la scène.

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

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

Associe l'rect e spécifiée dans le système de coordonnées de cet élément à la zone rectangulaire équivalente dans le système de coordonnées de la scène, puis renvoie la valeur du rectangle associé.

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, le mappage inclut la position relative des deux scènes.

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

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

Converte les coordonnées point fournies dans le système de coordonnées de cet élément en un point équivalent dans le système de coordonnées global de l'écran, puis renvoie la coordonnée convertie.

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

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

Cela peut par exemple s’avérer utile pour ajouter une fenêtre contextuelle à un composant Qt Quick.

Remarque : le positionnementde la fenêtre est géré par le gestionnaire de fenêtres et cette valeur n’est considérée que comme une indication. La position finale de la fenêtre peut donc différer de celle attendue.

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

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

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

Associe l'point e spécifiée dans le système de coordonnées de cet élément au point équivalent dans le système de coordonnées de item, puis renvoie la coordonnée associée.

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

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

Si « item » vaut « nullptr », cela mappe « point » vers le système de coordonnées de la scène.

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

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

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

Associe les coordonnées point fournies dans le système de coordonnées de cet élément au point équivalent dans le système de coordonnées de la scène, puis renvoie la coordonnée associée.

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

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

Voir également «Concepts - Coordonnées visuelles » sur Qt Quick.

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de double-clic de 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 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::mouseMoveEvent(QMouseEvent *event)

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de 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 de clic précédent doit être accepté (en redéfinissant mousePressEvent(), par exemple) et acceptedMouseButtons() doit renvoyer le bouton de souris concerné.

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 afin de recevoir les événements de clic de souris pour un élément. Les informations relatives à l'événement sont fournies par le paramètre ` event `.

Pour recevoir les événements de clic de souris, la fonction acceptedMouseButtons() doit renvoyer le bouton de souris concerné.

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::mouseReleaseEvent(QMouseEvent *event)

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de 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 les événements de relâchement de la souris, l’événement de pression de souris précédent doit être accepté (en redéfinissant mousePressEvent(), par exemple) et acceptedMouseButtons() doit renvoyer le bouton de souris concerné.

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

Cet événement peut être réimplémenté dans une sous-classe afin d'être averti lorsqu'un événement de relâchement de la souris se produit sur cet élément.

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

Renvoie l'élément de la chaîne de focus situé à côté de cet élément. Si forward vaut true ou n'est pas fourni, il s'agit de l'élément suivant dans le sens avant. Si forward vaut false, il s'agit de l'élément suivant dans le sens arrière.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis 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 requête, il appelle la méthode updatePolish() sur cet élément.

Voir également 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 encore gérées par les nœuds renvoyés par la fonction ` QQuickItem::updatePaintNode()`.

Cela se produit lorsque l’élément est sur le point d’être retiré de la fenêtre dans laquelle il s’affichait auparavant. Il est garanti que l’élément dispose d’un ` window ` lorsque la fonction est appelée.

La fonction est appelée sur le thread de l'interface graphique et l'état du thread de rendu, lorsqu'il est utilisé, est inconnu. Les objets ne doivent pas être supprimés directement, mais leur nettoyage doit être planifié à l'aide de QQuickWindow::scheduleRenderJob().

Voir également ` Graphics Resource Handling`.

QQuickItem *QQuickItem::scopedFocusItem() const

Si cet élément est un « focus scope », cette méthode renvoie l'élément de sa chaîne de focus qui détient actuellement le focus.

Renvoie « nullptr » si cet élément n'est pas une portée de focus.

void QQuickItem::setAcceptHoverEvents(bool enabled)

Si la propriété « enabled » est définie sur « true », cet élément accepte les événements de survol ; dans le cas contraire, il ne les accepte pas.

Voir également acceptHoverEvents().

void QQuickItem::setAcceptTouchEvents(bool enabled)

Si enabled est vrai, cette propriété configure l'élément pour qu'il accepte les événements tactiles ; dans le cas contraire, cet élément n'accepte pas les événements tactiles.

Voir également acceptTouchEvents().

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

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

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

Voir également acceptedMouseButtons().

void QQuickItem::setCursor(const QCursor &cursor)

Définit la forme « cursor » pour cet élément.

Voir également cursor() et unsetCursor().

void QQuickItem::setFiltersChildMouseEvents(bool filter)

Détermine si les événements de pointeur destinés aux éléments enfants de cet élément doivent être filtrés par celui-ci.

Si ` filter ` est défini à `true`, la méthode ` childMouseEventFilter()` sera appelée 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'flag spécifiée pour cet élément si la valeur de « enabled » est « true » ; si la valeur de « enabled » est « false », l'indicateur est désactivé.

Ces options fournissent diverses indications concernant l’élément ; par exemple, l’indicateur « ItemClipsChildrenToShape » indique que tous les éléments enfants de cet élément doivent être recadrés pour s’adapter à la zone de l’élément.

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

Active l'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 premier plan de cet élément sur « policy ».

Remarque : fonctionde définition de la propriété focusPolicy.

Voir également focusPolicy().

void QQuickItem::setKeepMouseGrab(bool keep)

Détermine si l'entrée de la souris doit rester exclusivement associée à cet élément.

Cette option est utile pour les éléments qui souhaitent capturer et conserver l’interaction de la souris à la suite d’un geste prédéfini. Par exemple, un élément intéressé par le déplacement horizontal de la souris peut définir « keepMouseGrab » sur « true » dès qu’un seuil a été dépassé. Une fois « keepMouseGrab » défini sur « true », les éléments filtrants ne réagiront plus aux événements de la souris.

Si keep est défini sur false, un élément filtrant peut « voler » la capture. Par exemple, Flickable peut tenter de « voler » une capture de la souris s’il détecte que l’utilisateur a commencé à déplacer la fenêtre d’affichage.

Voir également keepMouseGrab().

void QQuickItem::setKeepTouchGrab(bool keep)

Détermine si les points de contact capturés par cet élément doivent rester exclusivement associés à celui-ci.

Cette option est utile pour les éléments qui souhaitent capturer et conserver des points de contact spécifiques à la suite d’un geste prédéfini. Par exemple, un élément intéressé par le déplacement horizontal des points de contact peut définir setKeepTouchGrab sur true dès qu’un seuil a été dépassé. Une fois setKeepTouchGrab défini sur true, les éléments de filtrage ne réagiront plus aux points de contact concernés.

Si ` keep ` est à `false`, un élément de filtrage peut « voler » la sélection. Par exemple, ` Flickable ` peut tenter de « voler » la sélection d’un point de contact s’il détecte que l’utilisateur a commencé à déplacer la fenêtre d’affichage.

Voir également keepTouchGrab() et setKeepMouseGrab().

void QQuickItem::setSize(const QSizeF &size)

Définit la taille de l'élément sur size. Cette méthode conserve toute liaison existante sur la largeur et la hauteur ; par conséquent, toute modification déclenchant une nouvelle exécution de la liaison remplacera les valeurs définies.

Voir également size, setWidth et setHeight.

QSizeF QQuickItem::size() const

Renvoie la taille de l'élément.

Voir également setSize, width et height.

void QQuickItem::stackAfter(const QQuickItem *sibling)

Déplace cet élément vers la position suivant l'élément frère spécifié dans la liste des enfants. L'ordre des enfants influe à la fois sur l'ordre d'empilement visuel et sur l'ordre de navigation par tabulation.

En supposant que les valeurs z des deux éléments soient identiques, cela entraînera l'affichage de « sibling » sous cet élément.

Si les deux éléments ont la propriété « activeFocusOnTab » définie sur « true », cela entraînera également une modification de l’ordre de navigation par tabulation, « sibling » recevant le focus avant cet élément.

L’élément « sibling » indiqué doit être un élément frère de cet élément ; c’est-à-dire qu’ils doivent avoir le même « parent » immédiat.

Voir également Concepts - Parent visuel dans Qt Quick.

void QQuickItem::stackBefore(const QQuickItem *sibling)

Déplace cet élément vers l'index situé avant l'élément frère spécifié dans la liste des enfants. L'ordre des enfants influe à la fois sur l'ordre d'empilement visuel et sur l'ordre de navigation par tabulation.

En supposant que les valeurs z des deux éléments soient identiques, cela entraînera l'affichage de « sibling » au-dessus de cet élément.

Si les deux éléments ont l’attribut « ` activeFocusOnTab ` » défini sur « ` true` », cela entraînera également une modification de l’ordre de navigation du focus du tab, « sibling » recevant alors le focus après cet élément.

L’élément « sibling » indiqué doit être un élément frère de cet élément ; c’est-à-dire qu’ils doivent avoir le même « parent » immédiat.

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 afin de recevoir les événements tactiles liés à 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 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::touchUngrabEvent()

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin d'être averti lorsqu'un événement « touch ungrab » se produit sur cet élément.

void QQuickItem::unsetCursor()

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

Voir également cursor() et setCursor().

[slot] void QQuickItem::update()

Planifie un appel à la fonction ` updatePaintNode()` pour cet élément.

L'appel à QQuickItem::updatePaintNode() aura toujours lieu si l'élément est affiché dans une 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)

Si nécessaire, informez la méthode de saisie de la mise à jour des valeurs de la requête. Le paramètre « 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.

Cette fonction est appelée à la suite de l'appel 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 correspondant à cet élément. La plupart des implémentations renverront un seul objet ` QSGGeometryNode ` contenant la représentation visuelle de cet élément. ` oldNode ` est le nœud qui a été renvoyé lors du dernier appel de la fonction. ` updatePaintNodeData ` fournit un pointeur vers l'objet ` QSGTransformNode ` associé à cet ` 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 ; il est donc possible de lire en toute sécurité les valeurs de l’instance QQuickItem et d’autres objets dans le thread principal.

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

Avertissement : il est essentiel que les opérations graphiques et les interactions avec le graphe de scène se déroulent exclusivement sur le thread de rendu, principalement lors de l'appel à `QQuickItem::updatePaintNode()`. La meilleure règle à suivre consiste à n'utiliser que des classes portant le préfixe « QSG » à l'intérieur de la fonction `QQuickItem::updatePaintNode()`.

Avertissement : 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 ; il convient donc de faire preuve de prudence lorsque vous effectuez toute autre opération que le rendu dans cette fonction. Il en va de même pour les signaux : ceux-ci seront émis sur le thread de rendu et seront donc souvent transmis via des connexions en file d'attente.

Remarque : toutes les classes portant le préfixe « QSG » doivent être utilisées exclusivement sur le thread de rendu du graphe de scène. Voir Graphe de scène et rendu pour plus d’informations.

Voir également 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 la fonction polish() est appelée, le graphe de scène planifie un événement « polish » pour cet élément. Lorsque le graphe de scène est prêt à afficher cet élément, il appelle la fonction updatePolish() afin d’effectuer la mise en page de l’élément selon les besoins avant d’afficher l’image suivante.

Voir également ensurePolished().

QQuickItem *QQuickItem::viewportItem() const

Si l'indicateur « ItemObservesViewport » est activé, renvoie le parent le plus proche pour lequel l'indicateur « ItemIsViewport » est activé. Renvoie le « contentItem » de la fenêtre si cet indicateur n'est pas activé, ou si aucun autre élément de la fenêtre d'affichage n'est trouvé.

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

Voir aussi clipRect().

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

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de molette 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 de l'accepter explicitement 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 affiché.

L'élément ne dispose pas de fenêtre tant qu'il n'a pas été affecté à une scène. Le signal ` windowChanged()` envoie une notification à la fois lorsque l'élément est ajouté à une scène et lorsqu'il en est retiré.

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

Ce signal est émis lorsque l'window s 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.