MultiPointTouchArea QML Type
Permet de gérer plusieurs points de contact. Plus d'informations...
| Import Statement: | import QtQuick |
| Inherits: |
Propriétés
- maximumTouchPoints : int
- minimumTouchPoints : int
- mouseEnabled : bool
- touchPoints : list<TouchPoint>
Signaux
- canceled(list<TouchPoint> touchPoints)
- gestureStarted(GestureEvent gesture)
- pressed(list<TouchPoint> touchPoints)
- released(list<TouchPoint> touchPoints)
- touchUpdated(list<TouchPoint> touchPoints)
- updated(list<TouchPoint> touchPoints)
Description détaillée
Une MultiPointTouchArea est un élément invisible utilisé pour suivre plusieurs points de contact.
La propriété Item::enabled permet d'activer et de désactiver la gestion du toucher. Lorsqu'elle est désactivée, la zone tactile devient transparente aux événements liés à la souris et au toucher.
Par défaut, la souris est gérée de la même manière qu'un point de contact unique, et les éléments situés sous la zone tactile ne reçoivent pas d'événements de souris parce que la zone tactile les gère. Mais si la propriété mouseEnabled est définie sur false, elle devient transparente aux événements de souris, de sorte qu'un autre élément sensible à la souris (tel qu'un MouseArea) peut être utilisé pour gérer l'interaction avec la souris séparément.
MultiPointTouchArea peut être utilisé de deux manières :
- en définissant
touchPointspour fournir des objets de point de contact avec des propriétés qui peuvent être liées à des objets de point de contact. - en utilisant les gestionnaires onTouchUpdated ou onPressed, onUpdated et onReleased.
Bien qu'une MultiPointTouchArea puisse s'approprier exclusivement certains points de contact, il est également possible d'avoir plusieurs MultiPointTouchAreas actives en même temps, chacune opérant sur un ensemble différent de points de contact.
Voir également TouchPoint.
Documentation sur les propriétés
Ces propriétés contiennent la gamme de points de contact à gérer par la zone tactile.
Elles permettent, par exemple, d'imbriquer des zones tactiles MultiPointTouchAreas, l'une gérant les contacts avec deux doigts, l'autre les contacts avec trois doigts.
Par défaut, tous les points de contact à l'intérieur de la zone tactile sont pris en charge.
Si mouseEnabled est vrai, la souris fait office de point de contact et est donc également soumise à ces contraintes : par exemple, si maximumTouchPoints est égal à deux, vous pouvez utiliser la souris comme point de contact et un doigt comme autre point de contact, pour un total de deux.
mouseEnabled : bool
Cette propriété détermine si le site MultiPointTouchArea gère également les événements liés à la souris. Si elle vaut true (valeur par défaut), la zone tactile traitera la souris de la même manière qu'un point de contact unique ; si elle vaut false, la zone tactile ignorera les événements liés à la souris et les laissera "passer" afin qu'ils puissent être gérés par d'autres éléments situés en dessous.
touchPoints : list<TouchPoint> [read-only]
Cette propriété contient un ensemble d'objets de points de contact définis par l'utilisateur qui peuvent être liés.
Si mouseEnabled est vrai (par défaut) et que le bouton gauche de la souris est enfoncé lorsque la souris se trouve au-dessus de la zone tactile, la position actuelle de la souris correspondra à l'un de ces points de contact.
Dans l'exemple suivant, nous avons deux petits rectangles qui suivent nos points de contact.
import QtQuick Rectangle { width: 400; height: 400 MultiPointTouchArea { anchors.fill: parent touchPoints: [ TouchPoint { id: point1 }, TouchPoint { id: point2 } ] } Rectangle { width: 30; height: 30 color: "green" x: point1.x y: point1.y } Rectangle { width: 30; height: 30 color: "yellow" x: point2.x y: point2.y } }
Par défaut, cette propriété contient une liste vide.
Voir aussi TouchPoint.
Documentation sur les signaux
canceled(list<TouchPoint> touchPoints)
Ce signal est émis lorsque de nouveaux événements tactiles ont été annulés parce qu'un autre élément a volé la gestion de l'événement tactile.
Ce signal est destiné à un usage avancé : il est utile lorsque plusieurs sites MultiPointTouchArea gèrent des entrées ou lorsqu'un site MultiPointTouchArea se trouve à l'intérieur d'un site Flickable. Dans ce dernier cas, si vous exécutez une certaine logique dans le gestionnaire de signaux onPressed et que vous commencez ensuite à faire glisser l'objet, le site Flickable peut voler la gestion du toucher au site MultiPointTouchArea. Dans ce cas, pour réinitialiser la logique lorsque le site MultiPointTouchArea a perdu la gestion du toucher au profit du site Flickable, il convient de gérer le site canceled en plus du site released.
touchPoints est la liste des points annulés.
Note : Si vous utilisez l'argument touchPoints dans votre code de gestionnaire de signal, il est préférable de le renommer dans votre paramètre formel afin d'éviter toute confusion avec la propriété touchPoints (voir les conventions de codage QML) :
onCanceled: (points) => console.log("canceled", points.length)Note : Le gestionnaire correspondant est onCanceled.
gestureStarted(GestureEvent gesture)
Ce signal est émis lorsque le seuil de traînée global a été atteint.
Ce signal est généralement utilisé lorsqu'un MultiPointTouchArea a été imbriqué dans un Flickable ou un autre MultiPointTouchArea. Lorsque le seuil est atteint et que le signal est traité, vous pouvez déterminer si la zone tactile doit ou non saisir les points de contact actuels. Par défaut, ils ne seront pas saisis ; pour les saisir, appelez gesture.grab(). Si le geste n'est pas saisi, le Flickable imbriqué, par exemple, aura également la possibilité de saisir le geste.
L'objet gesture contient également des informations sur l'ensemble actuel de touchPoints et de dragThreshold.
Remarque : le gestionnaire correspondant est onGestureStarted.
pressed(list<TouchPoint> touchPoints)
Ce signal est émis lorsque de nouveaux points de contact sont ajoutés. touchPoints est une liste de ces nouveaux points.
Si la valeur de minimumTouchPoints est supérieure à un, ce signal ne sera pas émis tant que le nombre minimum de points de contact requis n'aura pas été atteint.
Note : Si vous utilisez l'argument touchPoints dans le code de votre gestionnaire de signal, il est préférable de le renommer dans votre paramètre formel afin d'éviter toute confusion avec la propriété touchPoints (voir les conventions de codage QML) :
onPressed: (points) => console.log("pressed", points.length)Note : Le gestionnaire correspondant est onPressed.
released(list<TouchPoint> touchPoints)
Ce signal est émis lorsque des points de contact existants sont supprimés. touchPoints est une liste de ces points supprimés.
Note : Si vous utilisez l'argument touchPoints dans le code de votre gestionnaire de signal, il est préférable de le renommer dans votre paramètre formel afin d'éviter toute confusion avec la propriété touchPoints (voir les conventions de codage QML) :
onReleased: (points) => console.log("released", points.length)Note : Le gestionnaire correspondant est onReleased.
touchUpdated(list<TouchPoint> touchPoints)
Ce signal est émis lorsque les points de contact gérés par MultiPointTouchArea changent. Cela comprend l'ajout de nouveaux points de contact, la suppression ou l'annulation de points de contact précédents, ainsi que la mise à jour des données relatives aux points de contact actuels. touchPoints est la liste de tous les points de contact actuels.
Remarque : le gestionnaire correspondant est onTouchUpdated.
updated(list<TouchPoint> touchPoints)
Ce signal est émis lorsque les points de contact existants sont mis à jour. touchPoints est une liste de ces points mis à jour.
Note : Si vous utilisez l'argument touchPoints dans le code de votre gestionnaire de signal, il est préférable de le renommer dans votre paramètre formel afin d'éviter toute confusion avec la propriété touchPoints (voir les conventions de codage QML) :
onUpdated: (points) => console.log("updated", points.length)Note : Le gestionnaire correspondant est onUpdated.
© 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.