MouseArea {
onClicked: booksList.currentIndex = index
anchors.fill: parent
}
}
highlight: Rectangle { color: "lightsteelblue" }
focus: true
}
Cette manière de procéder est bien plus propre que précédemment, tant pour
l'utilisateur (les boutons étaient détournés de leur usage premier, ce qui nuit à la
compréhension rapide de l'interface) que dans le code. Ainsi, le modèle est disponible
par bookModel, l'indice de l'élément actuellement sélectionné par
booksList.currentIndex. Il n'en faut pas plus pour effectuer un lien direct entre les
deux vues (inutile de définir les valeurs dans la vue depuis les boutons, le lien se fait
naturellement).
Label { text: "Titre" }
Text { text: bookModel.get(booksList.currentIndex).title }
Note > Le changement de sélection fonctionne automatiquement avec les flèches
directionnelles du clavier : la mise à jour de booksList.currentIndex ne doit pas être
codée manuellement (à moins que le comportement par défaut ne suffise pas). Par
contre, aucun comportement n'est prévu par défaut pour gérer les clics de souris.
L'élément en surbrillance est toujours indiqué par booksList.currentIndex : tout
changement dans la valeur de cette propriété déplace automatiquement le composant
de mise en évidence. Ce mécanisme est utilisé ici pour gérer les clics de souris de
manière naturelle.
Figure 16.3 : BiblioApp réécrite avec la sélection dans ListView
340
Précédent

- 341/494

Suivant