Sur cette page

Qt Quick Manipulateurs d'entrée

Qt Quick Les gestionnaires d'entrée sont un ensemble de types QML utilisés pour gérer events à partir du clavier, du toucher, de la souris et du stylet devices 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 parent. Ainsi, les préoccupations visuelles et comportementales sont mieux séparées, et le comportement est construit par une composition plus fine.

Le site Qt Quick Examples - Pointer Handlers (Exemples - Gestionnaires de pointeurs) présente quelques cas d'utilisation.

Le concept de la propriété attachée préexistante de Keys est similaire, c'est pourquoi nous nous référons aux gestionnaires orientés vers les dispositifs de pointage et à Keys en tant qu'ensemble de gestionnaires d'entrée. Nous prévoyons de proposer davantage de cas d'utilisation des propriétés attachées dans les prochaines versions de Qt.

Gestionnaires d'entrée

DragHandler

Gestionnaire pour le glissement

HoverHandler

Gestionnaire pour le survol de la souris et de la tablette

KeyNavigation

Prise en charge de la navigation par touches fléchées

Keys

Gestion des touches pour les éléments

PinchHandler

Gestionnaire pour les gestes de pincement

PointHandler

Gestionnaire de réaction à un point de contact unique

TapHandler

Gestionnaire pour les taps et les clics

WheelHandler

Gestionnaire pour la molette de la souris

Caractéristiques principales

Les principales fonctionnalités sont les suivantes

  • Prise en charge des frappes au clavier dans l'élément ciblé
  • Traiter les gestes tels que le tapotement ou le glissement, quel que soit le périphérique d'où ils proviennent.
  • Traiter différemment les gestes provenant de différentes classes de périphériques.
  • Chaque élément peut avoir un nombre illimité de gestionnaires

Manipulateurs manipulant des é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 des gestionnaires et signaux

Tous les gestionnaires ont des propriétés qui peuvent être utilisées dans les liaisons et des signaux qui peuvent être gérés pour réagir aux entrées :

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()
}

Prise de pointeur

Un concept important des gestionnaires de pointeurs est le type de saisie qu'ils effectuent. Le seul type de saisie qu'un élément peut effectuer est la saisie exclusive : par exemple, si vous appelez QPointerEvent::setExclusiveGrabber(), les mouvements de souris suivants et l'événement de relâchement de la souris ne seront envoyés qu'à cet objet. (Pour contourner cette exclusivité, voir QQuickItem::setFiltersChildMouseEvents() et QQuickItem::childMouseEventFilter().) Cependant, les gestionnaires de pointeurs disposent d'un mécanisme supplémentaire : le passive grab. Les événements de souris et de toucher press sont transmis en visitant tous les éléments dans l'ordre Z descendant : d'abord les gestionnaires enfants de chaque élément, puis le Item lui-même. Au moment où un événement de pression est délivré, un gestionnaire peut prendre une saisie passive ou exclusive en fonction de ses besoins. S'il adopte une saisie passive, il est assuré de recevoir les mises à jour et le communiqué, même si d'autres éléments ou gestionnaires de la scène adoptent n'importe quel type de saisie, passive ou exclusive. Certains Handlers (tels que PointHandler) ne peuvent fonctionner qu'avec des prises passives ; d'autres ont besoin de prises exclusives ; et d'autres encore peuvent "rôder" avec des prises passives jusqu'à ce qu'ils détectent qu'un geste est en train d'être effectué, puis faire la transition de la prise passive à la prise exclusive. TapHandler Le comportement de saisie de l'application est le suivant : configurable.

Lorsqu'une transition de saisie est demandée, PointerHandler::grabPermissions, QQuickItem::keepMouseGrab() et QQuickItem::keepTouchGrab() déterminent si la transition est 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.