Sur cette page

Qt Quick Gestionnaires d'entrée

Qt Quick Les gestionnaires d’entrée constituent un ensemble de types QML utilisés pour gérer les e events s provenant des devices s du clavier, du toucher, de la souris et du stylet dans une interface utilisateur. Contrairement aux éléments de gestion d’événements, tels que MouseArea et Flickable, les gestionnaires d’entrée sont explicitement non visuels, nécessitent moins de mémoire et sont destinés à être utilisés en plus grand nombre : une instance de gestionnaire par aspect de l’interaction. Chaque instance de gestionnaire d’entrée gère certains événements pour le compte de son élément d’ parent. Ainsi, les aspects visuels et comportementaux sont mieux séparés, et le comportement est construit grâce à une composition plus fine.

La section « Exemples d’Qt Quick s – Gestionnaires de pointeur » présente quelques cas d’utilisation de ces gestionnaires.

La propriété attachée préexistante « Keys » repose sur un concept similaire ; c’est pourquoi nous désignons collectivement les gestionnaires orientés périphériques de pointage et « Keys » sous le nom d’« Input Handlers ». Nous prévoyons de proposer davantage de cas d’utilisation des propriétés attachées dans les futures versions de Qt.

Gestionnaires d’entrée

DragHandler

Gestionnaire de glissement

HoverHandler

Gestionnaire de survol avec la souris et la tablette

KeyNavigation

Prend en charge la navigation à l'aide des touches fléchées

Keys

Fournit la gestion des touches aux éléments

PinchHandler

Gestionnaire des gestes de pincement

PointHandler

Gestionnaire de réaction à un point de contact unique

TapHandler

Gestionnaire des tapotements et des clics

WheelHandler

Gestionnaire de la molette de souris

Principales fonctionnalités

Voici quelques-unes des principales fonctionnalités :

  • Gestion des frappes au sein de l'élément actif
  • Gestion des gestes tels que les tapotements ou les glissements, quel que soit le périphérique d’origine
  • Gestion des gestes provenant de différentes catégories d’appareils selon des méthodes distinctes
  • Chaque élément peut disposer d'un nombre illimité de gestionnaires

Manipulateurs gérant les éléments

Certains gestionnaires ajoutent de l’interactivité simplement en étant déclarés à l’intérieur d’un élément :

import QtQuick

Rectangle {
    width: 100
    height: 100
    color: "lightsteelblue"
    DragHandler { }
}

Propriétés et signaux des gestionnaires

Tous les gestionnaires disposent de propriétés pouvant être utilisées dans des liaisons, ainsi que de signaux pouvant être gérés pour réagir à une entrée :

import QtQuick

Rectangle {
    id: button
    signal clicked

    width: 150; height: 50; radius: 3
    color: tapHandler.pressed ? "goldenrod" : hoverHandler.hovered ? "wheat" : "beige"
    border.color: activeFocus ? "brown" : "transparent"
    focus: true

    HoverHandler {
        id: hoverHandler
    }

    TapHandler {
        id: tapHandler
        onTapped: button.clicked()
    }

    Keys.onEnterPressed: button.clicked()
}

Saisie du pointeur

Un concept important concernant les gestionnaires de pointeur est le type de « capture » qu’ils effectuent. Le seul type de capture qu’un élément peut effectuer est la capture exclusive : par exemple, si vous appelez ` QPointerEvent::setExclusiveGrabber()` (), les mouvements de souris et l’événement de relâchement de souris suivants ne seront envoyés qu’à cet objet. (Pour contourner cette exclusivité, voir ` QQuickItem::setFiltersChildMouseEvents()` et ` QQuickItem::childMouseEventFilter()`.) Cependant, les gestionnaires de pointeur disposent d’un mécanisme supplémentaire : l’ passive grab. Les événements de souris et de press tactile sont transmis en parcourant tous les éléments dans l’ordre Z de haut en bas : d’abord les gestionnaires enfants de chaque élément, puis l’ Item e lui-même. Au moment où un événement de pression est transmis, un gestionnaire peut effectuer une saisie passive ou exclusive selon ses besoins. S’il effectue une saisie passive, il est assuré de recevoir les mises à jour et le relâchement, même si d’autres éléments ou gestionnaires de la scène effectuent n’importe quel type de saisie, passive ou exclusive. Certains gestionnaires (tels que PointHandler) ne peuvent fonctionner qu’avec des saisies passives ; d’autres nécessitent des saisies exclusives ; et d’autres encore peuvent rester « en veille » avec des saisies passives jusqu’à ce qu’ils détectent qu’un geste est en cours d’exécution, puis effectuer la transition d’une saisie passive à une saisie exclusive. Le comportement de saisie de TapHandler est configurable.

Lorsqu’une transition de saisie est demandée, les fonctions PointerHandler::grabPermissions, QQuickItem::keepMouseGrab() et QQuickItem::keepTouchGrab() déterminent si la transition sera autorisée.

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