De même, le délégué est identique au cas précédent.
Cependant, le code tel quel reste peu intuitif pour le lien avec l'affichage en bas de
l'interface : la valeur de chaque champ reste imposée par un clic sur le bouton
correspondant au livre. Il est possible d'améliorer fortement l'affichage, en transformant
les boutons en une série de champs de texte. Lorsque l'utilisateur en sélectionne un, il
est mis en évidence : les détails de ce livre sont indiqués dans la partie édition.
Pour implémenter cette sélection avec surbrillance, l'environnement Qt Quick impose
de procéder en trois étapes :
1. Créer un nouveau composant qui servira à mettre en évidence un élément. Il s'agit
le plus souvent d'un rectangle, passé à la propriété highlight ;
2. Pour que la vue réagisse aux mouvements du clavier (déplacer la sélection avec
les flèches directionnelles), il faut lui transférer les événements en provenance du
clavier. Pour ce faire, il est nécessaire de lui donner le focus par focus: true
(plus de détails à la Section 1, Interactions par le clavier) ;
3. Finalement, pour réagir aux clics de la souris, un MouseArea doit être placé au
même niveau que Text dans le délégué (comme à la Section 3.5, Gestionnaires de
signal). Il leur faut donc un parent commun, puisque le délégué n'est constitué que
d'un seul composant. Item est tout désigné, étant donné que ce parent commun ne
doit rien faire, si ce n'est afficher ses deux enfants et avoir une taille.
Note > Item se situe tout en haut de la hiérarchie des composants Qt Quick visuels,
c'est-à-dire ceux qui ont un impact à l'écran (comme un rectangle, mais
contrairement à un modèle). Il ne définit qu'un comportement de base (coordonnées,
dimensions, principalement).
ListView {
id: booksList
anchors.fill: parent
spacing: 2
model: bookModel
delegate: Item {
width: parent.width
height: 18
Text {
text: title + ", " + author
}
339
Cependant, le code tel quel reste peu intuitif pour le lien avec l'affichage en bas de
l'interface : la valeur de chaque champ reste imposée par un clic sur le bouton
correspondant au livre. Il est possible d'améliorer fortement l'affichage, en transformant
les boutons en une série de champs de texte. Lorsque l'utilisateur en sélectionne un, il
est mis en évidence : les détails de ce livre sont indiqués dans la partie édition.
Pour implémenter cette sélection avec surbrillance, l'environnement Qt Quick impose
de procéder en trois étapes :
1. Créer un nouveau composant qui servira à mettre en évidence un élément. Il s'agit
le plus souvent d'un rectangle, passé à la propriété highlight ;
2. Pour que la vue réagisse aux mouvements du clavier (déplacer la sélection avec
les flèches directionnelles), il faut lui transférer les événements en provenance du
clavier. Pour ce faire, il est nécessaire de lui donner le focus par focus: true
(plus de détails à la Section 1, Interactions par le clavier) ;
3. Finalement, pour réagir aux clics de la souris, un MouseArea doit être placé au
même niveau que Text dans le délégué (comme à la Section 3.5, Gestionnaires de
signal). Il leur faut donc un parent commun, puisque le délégué n'est constitué que
d'un seul composant. Item est tout désigné, étant donné que ce parent commun ne
doit rien faire, si ce n'est afficher ses deux enfants et avoir une taille.
Note > Item se situe tout en haut de la hiérarchie des composants Qt Quick visuels,
c'est-à-dire ceux qui ont un impact à l'écran (comme un rectangle, mais
contrairement à un modèle). Il ne définit qu'un comportement de base (coordonnées,
dimensions, principalement).
ListView {
id: booksList
anchors.fill: parent
spacing: 2
model: bookModel
delegate: Item {
width: parent.width
height: 18
Text {
text: title + ", " + author
}
339
