Créer un composant réutilisable
Niveau : intermédiaire
Objectifs : développer une application de manière modulaire plutôt que monolithique,
avec plusieurs fichiers
Prérequis : Premiers pas avec Qt Quick, Présentation de JavaScript
Jusqu'à présent, le code de BiblioApp n'est pas réutilisable : tout le contenu de
l'interface est présent dans un seul fichier (main.qml), sans possibilité de changer le
comportement depuis l'extérieur de ce fichier principal. Cependant, certaines parties
pourraient être utiles à l'extérieur de BiblioApp : l'accès à la base de données est
indépendant de la manière d'écrire l'interface, tout comme le modèle des genres (qui ne
diffère d'une liste que par des fonctions de recherche). La seule dépendance entre le
stockage des données et l'application BiblioApp est l'interface de programmation à
respecter pour la communication harmonieuse de ces deux parties.
D'un autre point de vue, si une autre application cherche à intégrer BiblioApp, la
réutilisation du code sera difficile. Par exemple, pour gérer une bibliothèque de
quartier, les fonctionnalités incluront une consultation des livres existants, l'ajout de
livres à la collection (ces deux-là sont très proches de la version actuelle de
BiblioApp), mais aussi le prêt (qui utilisera la même base de données). Dans ce cas,
une bonne pratique de développement serait de réutiliser l'interface de BiblioApp,
mais de changer la manière de stocker les informations pour la coupler avec le prêt.
Bien évidemment, Qt Quick propose de créer ses propres composants réutilisables :
soit directement en QML (l'objet de ce chapitre), soit en Python (voir chapitre
Communiquer avec Python). Ils offrent la même latitude que tous les composants
utilisés jusqu'à maintenant (ApplicationWindow pour la fenêtre principale, ListModel
pour stocker les données, SplitView pour séparer l'interface en deux) : affichage,
paramétrage par des propriétés, gestionnaires de signal.
Une fois cette modularisation effectuée, les composants peuvent être distribués sous la
forme d'une extension Qt Quick, ce qui les rend utilisables par la directive import
dans des applications externes.
370
Précédent

- 371/494

Suivant