Sur cette page

KeyNavigation QML Type (Uncreatable)

Prend en charge la navigation à l'aide des touches fléchées. En savoir plus...

Import Statement: import QtQuick

Remarque : il s'agit d'un type non instanciable. Il ne peut pas être instancié en QML.

Propriétés associées

Description détaillée

Les interfaces utilisateur basées sur le clavier permettent généralement d'utiliser les touches fléchées pour naviguer entre les éléments pouvant recevoir le focus. Le type d'attachement KeyNavigation active ce comportement en offrant un moyen pratique de spécifier l'élément qui doit recevoir le focus lorsqu'une touche fléchée ou la touche Tab est enfoncée.

L'exemple suivant illustre la navigation au clavier pour une grille d'éléments 2x2 :

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 situé en haut à gauche reçoit initialement le focus en définissant la propriété « focus » sur « true ». Lorsqu’une touche fléchée est enfoncée, le focus se déplace vers l’élément approprié, tel que défini par la valeur attribuée aux propriétés « left », « right », « up » ou « down » de KeyNavigation.

Notez que si un type d’attachement KeyNavigation reçoit les événements de pression et de relâchement d’une touche fléchée ou de la touche Tab demandée, l’événement est accepté et ne se propage pas davantage.

Par défaut, KeyNavigation reçoit les événements de touche après l’élément auquel il est associé. Si l’élément accepte l’événement de touche, le type associé à KeyNavigation ne recevra pas d’événement pour cette touche. Définir la propriété ` priority ` sur ` KeyNavigation.BeforeItem ` permet d’utiliser l’événement pour la navigation au clavier avant l’élément, plutôt qu’après.

Si l’élément vers lequel le focus est transféré n’est pas activé ou visible, le système tentera de l’ignorer et de se concentrer sur le suivant. Cela est possible s’il existe une chaîne d’éléments dotés du même gestionnaire KeyNavigation. Si plusieurs éléments consécutifs 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 définissez ` left ` sur un autre élément, ` right ` sera défini sur le KeyNavigation de cet élément afin de ramener le focus sur cet élément. Toutefois, si la propriété KeyNavigation de cet élément a été explicitement définie sur « right », aucun changement ne se produira. Cela signifie que l’exemple ci-dessus pourrait obtenir 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 associées

KeyNavigation.backtab : Item [attached]

Cette propriété spécifie l'élément auquel attribuer le focus lorsque la combinaison de touches Maj+Tab (Backtab) est enfoncée.

KeyNavigation.down : Item [attached]

Cette propriété spécifie l'élément auquel attribuer le focus lorsque la touche fléchée vers le bas est enfoncée.

KeyNavigation.left : Item [attached]

Cette propriété spécifie l'élément auquel attribuer le focus lorsque la touche fléchée gauche est enfoncée.

KeyNavigation.priority : enumeration [attached]

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

ConstanteDescription
KeyNavigation.BeforeItemtraite les événements de touche avant le traitement normal des touches de l’élément. Si l’événement est utilisé pour la navigation au clavier, il sera accepté et ne sera pas transmis à l’élément.
KeyNavigation.AfterItem(par défaut) Traite les événements de touche après le traitement normal des touches de l'élément. Si l'élément accepte l'événement de touche, celui-ci ne sera pas géré par le gestionnaire de la propriété attachée « KeyNavigation ».

KeyNavigation.right : Item [attached]

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

KeyNavigation.tab : Item [attached]

Cette propriété contient l'élément auquel attribuer le focus lorsque l'on appuie sur la touche Tab.

KeyNavigation.up : Item [attached]

Cette propriété spécifie l'élément auquel attribuer le focus lorsque la touche fléchée 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.