Wars",
"price": "9.00"
}
]
C'est exactement ce type de modèle qui a été utilisé jusqu'à présent dans BiblioApp.
Cependant, il souffre de quelques défauts dans le cadre d'une application réaliste,
comme la difficulté d'ajouter des transitions ou des problèmes potentiels pour l'ajout
d'éléments en parallèle (depuis plusieurs fils d'exécution). De plus, la syntaxe pour
accéder à un élément du modèle n'est pas pratique : il faut passer par la propriété
attachée modelData, les champs ne sont pas accessibles directement.
Note > C'est une particularité de ces modèles avec des listes JavaScript de proposer
une propriété attachée modelData pour accéder à un élément du modèle depuis le code.
1.2. Modèle de liste
Cependant, Qt Quick fournit des composants spécifiquement prévus comme des
modèles, principalement ListModel. Comme son nom l'indique, ce modèle correspond
à une liste d'objets, chacun possédant plusieurs champs, ici nommés rôles. Cette liste
est ordonnée : les éléments ont un indice qui les trie.
ListModel s'utilise de manière très similaire aux modèles JavaScript, sauf pour l'accès
aux différents rôles : ils sont directement accessibles, sans syntaxe particulière.
ListModel {
id: bookModel
ListElement {
title: "Commentarii de Bello Gallico"
author: "Caius Iulius Caesar"
// …
}
// …
}
Repeater {
model: bookModel
Text {
text: title + ", " + author
}
}
Attention > La propriété attachée modelData n'est plus disponible avec ListModel, les
rôles sont accessibles directement par leur nom.
335
"price": "9.00"
}
]
C'est exactement ce type de modèle qui a été utilisé jusqu'à présent dans BiblioApp.
Cependant, il souffre de quelques défauts dans le cadre d'une application réaliste,
comme la difficulté d'ajouter des transitions ou des problèmes potentiels pour l'ajout
d'éléments en parallèle (depuis plusieurs fils d'exécution). De plus, la syntaxe pour
accéder à un élément du modèle n'est pas pratique : il faut passer par la propriété
attachée modelData, les champs ne sont pas accessibles directement.
Note > C'est une particularité de ces modèles avec des listes JavaScript de proposer
une propriété attachée modelData pour accéder à un élément du modèle depuis le code.
1.2. Modèle de liste
Cependant, Qt Quick fournit des composants spécifiquement prévus comme des
modèles, principalement ListModel. Comme son nom l'indique, ce modèle correspond
à une liste d'objets, chacun possédant plusieurs champs, ici nommés rôles. Cette liste
est ordonnée : les éléments ont un indice qui les trie.
ListModel s'utilise de manière très similaire aux modèles JavaScript, sauf pour l'accès
aux différents rôles : ils sont directement accessibles, sans syntaxe particulière.
ListModel {
id: bookModel
ListElement {
title: "Commentarii de Bello Gallico"
author: "Caius Iulius Caesar"
// …
}
// …
}
Repeater {
model: bookModel
Text {
text: title + ", " + author
}
}
Attention > La propriété attachée modelData n'est plus disponible avec ListModel, les
rôles sont accessibles directement par leur nom.
335
