event.accepted = true
}
MouseArea {
anchors.fill: parent
onClicked: parent.focus = true
}
}
}
Figure 21.1 : Changer la cible de saisie dynamiquement, ici dans un gestionnaire de signal
Cependant, il faut aussi prendre en compte les habitudes des utilisateurs : par exemple,
dans un formulaire, la touche Tabulation est généralement utilisée pour passer la saisie
au champ suivant (Maj+Tabulation servant à revenir en arrière). La propriété
activeFocusOnTab sert justement à cela : chaque composant qui la définit à une valeur
booléenne vraie est ajouté dans une chaîne d'éléments ; dès que l'utilisateur appuie sur
la touche Tabulation, l'élément suivant de la chaîne est sélectionné.
Attention > Bien évidemment, les appuis sur la touche Tabulation ne doivent pas être
traités par le composant lui-même pour que le mécanisme fonctionne : sinon, ils y
sont absorbés et le moteur d'exécution Qt Quick ne peut plus avancer dans la chaîne.
Text {
activeFocusOnTab: true
// …
Keys.onPressed: {
if (event.key !== Qt.Key_Tab) {
console.log("[" + modelData + "] Touche : " + event.key)
event.accepted = true
}
}
}
Note > Pour réaliser des chaînes d'activation de la cible de saisie plus complexes,
par exemple en utilisant d'autres touches (comme les flèches directionnelles), le seul
choix est d'utiliser le type attaché KeyNavigation.
409
}
MouseArea {
anchors.fill: parent
onClicked: parent.focus = true
}
}
}
Figure 21.1 : Changer la cible de saisie dynamiquement, ici dans un gestionnaire de signal
Cependant, il faut aussi prendre en compte les habitudes des utilisateurs : par exemple,
dans un formulaire, la touche Tabulation est généralement utilisée pour passer la saisie
au champ suivant (Maj+Tabulation servant à revenir en arrière). La propriété
activeFocusOnTab sert justement à cela : chaque composant qui la définit à une valeur
booléenne vraie est ajouté dans une chaîne d'éléments ; dès que l'utilisateur appuie sur
la touche Tabulation, l'élément suivant de la chaîne est sélectionné.
Attention > Bien évidemment, les appuis sur la touche Tabulation ne doivent pas être
traités par le composant lui-même pour que le mécanisme fonctionne : sinon, ils y
sont absorbés et le moteur d'exécution Qt Quick ne peut plus avancer dans la chaîne.
Text {
activeFocusOnTab: true
// …
Keys.onPressed: {
if (event.key !== Qt.Key_Tab) {
console.log("[" + modelData + "] Touche : " + event.key)
event.accepted = true
}
}
}
Note > Pour réaliser des chaînes d'activation de la cible de saisie plus complexes,
par exemple en utilisant d'autres touches (comme les flèches directionnelles), le seul
choix est d'utiliser le type attaché KeyNavigation.
409
