Sur cette page

MultiPointTouchArea QML Type

Permet la gestion de plusieurs points de contact. En savoir plus…

Import Statement: import QtQuick
Inherits:

Item

Propriétés

Signaux

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 ou de désactiver la gestion des interactions tactiles. Lorsqu’elle est désactivée, la zone tactile devient transparente aux événements de souris et tactiles.

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, car c’est la zone tactile qui les gère. Mais si la propriété ` mouseEnabled ` est définie sur `false`, elle devient transparente aux événements de souris, ce qui permet à un autre élément sensible à la souris (tel qu’un ` MouseArea`) de gérer séparément les interactions de la souris.

MultiPointTouchArea peut être utilisée de deux façons :

  • en définissant touchPoints pour fournir aux objets de point de contact des propriétés pouvant être liées à
  • en utilisant les gestionnaires onTouchUpdated ou onPressed, onUpdated et onReleased

Bien qu’une MultiPointTouchArea puisse prendre en charge de manière exclusive certains points tactiles, il est également possible d’avoir plusieurs MultiPointTouchAreas actives simultanément, chacune opérant sur un ensemble différent de points tactiles.

Voir également TouchPoint.

Documentation sur les propriétés

maximumTouchPoints : int

minimumTouchPoints : int

Ces propriétés définissent l'ensemble des points de contact gérés par la zone tactile.

Il s'agit de fonctionnalités pratiques qui vous permettent, par exemple, d'avoir des zones MultiPointTouchAreas imbriquées, l'une gérant les interactions à deux doigts, et l'autre celles à trois doigts.

Par défaut, tous les points de contact situés dans la zone tactile sont pris en charge.

Si la propriété « mouseEnabled » est définie sur « true », la souris agit comme un point de contact et est donc également soumise à ces contraintes : par exemple, si la valeur de « maximumTouchPoints » est égale à deux, vous pouvez utiliser la souris comme un point de contact et un doigt comme un autre point de contact, pour un total de deux.

mouseEnabled : bool

Cette propriété détermine si l'MultiPointTouchArea e gérera également les événements de souris. Si elle est définie sur « true » (valeur par défaut), la zone tactile traitera la souris comme un point de contact unique ; si elle est définie sur « false », la zone tactile ignorera les événements de 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 « points tactiles » définis par l'utilisateur auxquels il est possible de se lier.

Si la valeur « mouseEnabled » est définie sur « true » (valeur par défaut) et que le bouton gauche de la souris est enfoncé alors que 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 également 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 pris le relais dans la gestion de ces événements.

Ce signal est destiné à un usage avancé : il est utile lorsqu’il y a plusieurs « MultiPointTouchArea » qui gèrent les entrées, ou lorsqu’il y a un « MultiPointTouchArea » à l’intérieur d’un « Flickable ». Dans ce dernier cas, si vous exécutez une logique dans le gestionnaire de signal « onPressed » puis que vous commencez à faire glisser, l’« Flickable » peut prendre le relais de la gestion du toucher à la place de l’« MultiPointTouchArea ». Dans ces cas-là, pour réinitialiser la logique lorsque l’« MultiPointTouchArea » a perdu la gestion du toucher au profit de l’« Flickable », il convient de gérer « canceled » en plus de « released ».

touchPoints est la liste des points annulés.

Remarque : 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 Conventions de codage QML) :

onCanceled: (points) => console.log("canceled", points.length)

Remarque : le gestionnaire correspondant est onCanceled.

gestureStarted(GestureEvent gesture)

Ce signal est émis lorsque le seuil global de résistance a été atteint.

Ce signal est généralement utilisé lorsqu’un élément « MultiPointTouchArea » a été imbriqué dans un « Flickable » ou un autre « MultiPointTouchArea ». Lorsque le seuil est atteint et que le signal est géré, vous pouvez déterminer si la zone tactile doit ou non capturer les points de contact actuels. Par défaut, ils ne seront pas capturés ; pour les capturer, appelez ` gesture.grab()`. Si le geste n’est pas capturé, le `Flickable` imbriqué, par exemple, aura également la possibilité de le capturer.

L’objet ` gesture ` contient également des informations sur l’ensemble actuel des ` touchPoints ` et sur le ` 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 minimumTouchPoints est défini sur une valeur supérieure à un, ce signal ne sera pas émis tant que le nombre minimum de points de contact requis n'aura pas été atteint.

Remarque : 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 Conventions de codage QML) :

onPressed: (points) => console.log("pressed", points.length)

Remarque : 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.

Remarque : 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 Conventions de codage QML) :

onReleased: (points) => console.log("released", points.length)

Remarque : le gestionnaire correspondant est onReleased.

touchUpdated(list<TouchPoint> touchPoints)

Ce signal est émis lorsque les points de contact gérés par l'MultiPointTouchArea changent. Cela inclut l'ajout de nouveaux points de contact, la suppression ou l'annulation de points de contact existants, ainsi que la mise à jour des données relatives aux points de contact actuels. touchPoints correspond à la liste de tous les points de contact actuels.

Remarque : le gestionnaire correspondant est onTouchUpdated.

updated(list<TouchPoint> touchPoints)

Ce signal est émis lorsque des points tactiles existants sont mis à jour. ` touchPoints ` est une liste de ces points mis à jour.

Remarque : 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 Conventions de codage QML) :

onUpdated: (points) => console.log("updated", points.length)

Remarque : 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.