Sur cette page

KeyNavigation QML Type

Prend en charge la navigation par touches fléchées. Plus d'informations...

Import Statement: import QtQuick

Propriétés attachées

Description détaillée

Les interfaces utilisateur basées sur des touches permettent généralement d'utiliser les touches fléchées pour naviguer entre les éléments sur lesquels on peut se concentrer. Le type d'attachement KeyNavigation permet ce comportement en offrant un moyen pratique de spécifier l'élément qui doit être mis en évidence lorsqu'une touche de flèche ou de tabulation est enfoncée.

L'exemple suivant présente la navigation par touche pour une grille de 2 x 2 éléments :

import QtQuick

Grid {
    width: 100; height: 100
    columns: 2

    Rectangle {
        id: topLeft
        width: 50; height: 50
        color: focus ? "red" : "lightgray"
        focus: true

        KeyNavigation.right: topRight
        KeyNavigation.down: bottomLeft
    }

    Rectangle {
        id: topRight
        width: 50; height: 50
        color: focus ? "red" : "lightgray"

        KeyNavigation.left: topLeft
        KeyNavigation.down: bottomRight
    }

    Rectangle {
        id: bottomLeft
        width: 50; height: 50
        color: focus ? "red" : "lightgray"

        KeyNavigation.right: bottomRight
        KeyNavigation.up: topLeft
    }

    Rectangle {
        id: bottomRight
        width: 50; height: 50
        color: focus ? "red" : "lightgray"

        KeyNavigation.left: bottomLeft
        KeyNavigation.up: topRight
    }
}

L'élément en haut à gauche reçoit initialement le focus en définissant focus sur true. Lorsqu'une touche de flèche est enfoncée, le focus se déplace vers l'élément approprié, tel que défini par la valeur définie pour les propriétés KeyNavigation left, right, up ou down.

Notez que si un type d'attachement KeyNavigation reçoit les événements d'appui et de relâchement d'une touche de flèche ou de tabulation demandée, l'événement est accepté et ne se propage pas plus loin.

Par défaut, KeyNavigation reçoit les événements de touche après l'élément auquel il est attaché. Si l'élément accepte l'événement clé, le type d'attachement KeyNavigation ne recevra pas d'événement pour cette touche. La définition de la propriété priority à KeyNavigation.BeforeItem permet d'utiliser l'événement pour la navigation par touche avant l'élément, plutôt qu'après.

Si l'élément sur lequel le focus est basculé n'est pas activé ou visible, une tentative sera faite pour sauter cet élément et se concentrer sur le suivant. Cela est possible s'il y a une chaîne d'éléments avec le même gestionnaire KeyNavigation. Si plusieurs éléments d'une même ligne ne sont pas activés ou visibles, ils seront également ignorés.

KeyNavigation définira implicitement l'autre direction pour ramener le focus sur cet élément. Ainsi, si vous attribuez left à un autre élément, right sera attribué à la KeyNavigation de cet élément afin de redonner la priorité à cet élément. Toutefois, si la KeyNavigation de cet élément a été explicitement définie à droite, aucun changement ne se produira. Cela signifie que l'exemple ci-dessus pourrait avoir le même comportement sans spécifier KeyNavigation.right ou KeyNavigation.down pour aucun des éléments.

Voir également Keys attached property.

Documentation sur les propriétés attachées

KeyNavigation.backtab : Item

Cette propriété contient l'élément auquel attribuer le focus lorsque la combinaison de touches Shift+Tab (Backtab) est activée.

KeyNavigation.down : Item

Cette propriété contient l'élément auquel attribuer le focus lorsque la touche curseur bas est enfoncée.

KeyNavigation.left : Item

Cette propriété contient l'élément auquel attribuer le focus lorsque la touche du curseur gauche est enfoncée.

KeyNavigation.priority : enumeration

Cette propriété détermine si les clés sont traitées avant ou après le traitement des clés de l'élément attaché.

ConstanteDescription
KeyNavigation.BeforeItemtraite les événements liés aux touches avant le traitement normal des touches de l'élément. Si l'événement est utilisé pour la navigation des touches, il sera accepté et ne sera pas transmis à l'élément.
KeyNavigation.AfterItem(par défaut) traite les événements clés après le traitement normal des clés de l'élément. Si l'élément accepte l'événement clé, il ne sera pas traité par le gestionnaire de propriété attaché à KeyNavigation.

KeyNavigation.right : Item

Cette propriété contient l'élément auquel attribuer le focus lorsque la touche curseur droite est enfoncée.

KeyNavigation.tab : Item

Cette propriété contient l'élément auquel attribuer le focus lorsque la touche Tab est enfoncée.

KeyNavigation.up : Item

Cette propriété contient l'élément auquel attribuer le focus lorsque la touche du curseur vers le haut est enfoncé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.