d'une part de mémoriser des données, d'autre part de les afficher. Avec Qt en général,
la manière la plus propre de stocker des données est d'utiliser un modèle. Ici, il peut
simplement s'agir de données au format JSON sous la forme d'un tableau :
Note > Le code source de cet exemple est disponible dans le projet biblioapprepeater .
[
{
"title": "Commentarii de Bello Gallico",
"author": "Caius Iulius Caesar",
"genre": "Nonfiction",
"publisher": "Les Belles Lettres",
"year": "1926",
"summary": "Julius Caesar's firsthand account of the Gallic
Wars",
"price": "9.00"
},
{
"title": "Προμηθεύς δεσμώτης",
"author": "Αἰσχύλος",
"genre": "Theatre",
"publisher": "Les Solitaires Intempestifs",
"year": "2010",
"summary": "Prometheus defied the gods and gave fire to
mankind",
"price": "24.34"
}
]
Avec ce modèle, le composant Repeater peut être utilisé pour répéter un composant un
certain nombre de fois (un délégué), chacune en prenant un élément différent du
modèle. La position de l'élément en cours d'affichage est disponible dans la propriété
attachée index, tandis que le contenu de cet élément l'est dans modelData.
ColumnLayout {
Repeater {
model: […]
Text {
text: modelData["title"] + ", " + modelData["author"]
}
}
}
C'est tout ce qui est nécessaire. Certes, l'affichage est rudimentaire, mais il est
fonctionnel.
Note > La propriété attachée modelData n'est disponible que pour certains types de
327
la manière la plus propre de stocker des données est d'utiliser un modèle. Ici, il peut
simplement s'agir de données au format JSON sous la forme d'un tableau :
Note > Le code source de cet exemple est disponible dans le projet biblioapprepeater .
[
{
"title": "Commentarii de Bello Gallico",
"author": "Caius Iulius Caesar",
"genre": "Nonfiction",
"publisher": "Les Belles Lettres",
"year": "1926",
"summary": "Julius Caesar's firsthand account of the Gallic
Wars",
"price": "9.00"
},
{
"title": "Προμηθεύς δεσμώτης",
"author": "Αἰσχύλος",
"genre": "Theatre",
"publisher": "Les Solitaires Intempestifs",
"year": "2010",
"summary": "Prometheus defied the gods and gave fire to
mankind",
"price": "24.34"
}
]
Avec ce modèle, le composant Repeater peut être utilisé pour répéter un composant un
certain nombre de fois (un délégué), chacune en prenant un élément différent du
modèle. La position de l'élément en cours d'affichage est disponible dans la propriété
attachée index, tandis que le contenu de cet élément l'est dans modelData.
ColumnLayout {
Repeater {
model: […]
Text {
text: modelData["title"] + ", " + modelData["author"]
}
}
}
C'est tout ce qui est nécessaire. Certes, l'affichage est rudimentaire, mais il est
fonctionnel.
Note > La propriété attachée modelData n'est disponible que pour certains types de
327
