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
Gestionnaire de glissement | |
Gestionnaire de survol avec la souris et la tablette | |
Prend en charge la navigation à l'aide des touches fléchées | |
Fournit la gestion des touches aux éléments | |
Gestionnaire des gestes de pincement | |
Gestionnaire de réaction à un point de contact unique | |
Gestionnaire des tapotements et des clics | |
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.
Informations connexes
© 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.