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 viaEGL_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.
| Constante | Valeur | Description |
|---|---|---|
QQuickItem::ItemClipsChildrenToShape | 0x01 | Indique 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::ItemAcceptsInputMethod | 0x02 | Indique que l'élément prend en charge les méthodes de saisie de texte. |
QQuickItem::ItemIsFocusScope | 0x04 | Indique que l'élément est une zone de focus. Pour plus d'informations, consultez la section « Focus clavier » dans Qt Quick. |
QQuickItem::ItemHasContents | 0x08 | Indique que l'élément possède un contenu visuel et doit être rendu par le graphe de scène. |
QQuickItem::ItemAcceptsDrops | 0x10 | Indique que l'élément accepte les événements de glisser-déposer. |
QQuickItem::ItemIsViewport | 0x20 | Indique que l'élément définit une fenêtre d'affichage pour ses enfants. |
QQuickItem::ItemObservesViewport | 0x40 | Indique 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.
| Constante | Valeur | Description |
|---|---|---|
QQuickItem::ItemChildAddedChange | 0 | Un enfant a été ajouté. ItemChangeData::item contient l'enfant ajouté. |
QQuickItem::ItemChildRemovedChange | 1 | Un enfant a été supprimé. ItemChangeData::item contient l'enfant supprimé. |
QQuickItem::ItemSceneChange | 2 | L'é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::ItemVisibleHasChanged | 3 | La visibilité de l’élément a changé. ` ItemChangeData::boolValue ` contient la nouvelle visibilité. |
QQuickItem::ItemParentHasChanged | 4 | Le parent de l’élément a changé. ` ItemChangeData::item ` contient le nouveau parent. |
QQuickItem::ItemOpacityHasChanged | 5 | L'opacité de l'élément a changé. ` ItemChangeData::realValue ` contient la nouvelle opacité. |
QQuickItem::ItemActiveFocusHasChanged | 6 | Le focus de l'élément a changé. ItemChangeData::boolValue indique si l'élément a le focus ou non. |
QQuickItem::ItemRotationHasChanged | 7 | La rotation de l'élément a changé. ` ItemChangeData::realValue ` contient la nouvelle rotation. |
QQuickItem::ItemDevicePixelRatioHasChanged | 9 | Le rapport de pixels de l’écran sur lequel se trouve l’élément a changé. ItemChangedData::realValue contient le nouveau rapport de pixels. |
QQuickItem::ItemAntialiasingHasChanged | 8 | L'anticrénelage a changé. La valeur actuelle (booléenne) se trouve dans ` QQuickItem::antialiasing`. |
QQuickItem::ItemEnabledHasChanged | 10 | L’état d’activation de l’élément a changé. ItemChangeData::boolValue contient le nouvel état d’activation. (depuis Qt 5.10) |
QQuickItem::ItemScaleHasChanged | 11 | L'échelle de l'élément a changé. ItemChangeData::realValue contient l'échelle. (depuis Qt 6.9) |
QQuickItem::ItemTransformHasChanged | 12 | La 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 ».
| Constante | Valeur | Description |
|---|---|---|
QQuickItem::AutoMutabilityGroup | 0x0 | Groupe de mutabilité par défaut. |
QQuickItem::StaticMutabilityGroup | 0x1 | Indique que l'élément est rarement, voire jamais, mis à jour. |
QQuickItem::ModerateMutabilityGroup | 0x8 | Indique que l'élément est mis à jour assez souvent. |
QQuickItem::DynamicMutabilityGroup | 0xf | Indique 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.
| Constante | Valeur | Description |
|---|---|---|
QQuickItem::TopLeft | 0 | Le coin supérieur gauche de l'élément. |
QQuickItem::Top | 1 | Le point central de la partie supérieure de l'élément. |
QQuickItem::TopRight | 2 | Le coin supérieur droit de l'élément. |
QQuickItem::Left | 3 | Le point le plus à gauche de la ligne médiane verticale. |
QQuickItem::Center | 4 | Le centre de l'élément. |
QQuickItem::Right | 5 | Le point le plus à droite de la ligne médiane verticale. |
QQuickItem::BottomLeft | 6 | Le coin inférieur gauche de l'élément. |
QQuickItem::Bottom | 7 | Le point central de la partie inférieure de l'élément. |
QQuickItem::BottomRight | 8 | Le 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.
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() |
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.
| |
|
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).
|
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.
|
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.

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.
| Même « z » : les enfants créés en dernier apparaissent au-dessus des enfants créés en premier :
|
| z plus élevé au-dessus :
|
| Même « z » – les enfants au-dessus des parents :
|
| z inférieure ci-dessous :
|
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.







