1. Composant statique
Pour être appelable de l'extérieur, un composant doit être placé seul dans un fichier,
dont le nom correspond au composant ; ainsi, le composant Menu est implémenté dans
un fichier nommé Menu.qml. Ce nom doit commencer par une capitale, sous peine de
ne pas être reconnu comme tel ; d'ailleurs, tous les composants utilisés jusqu'à présent
suivent cette convention.
Ensuite, le contenu de ce composant s'écrit de la même manière que l'interface
principale : il dérive d'un autre composant (souvent, d'un Rectangle), dont le contenu
est ensuite adapté (valeurs des propriétés, composants enfants, etc.).
Note > Si le composant a besoin d'une existence à l'affichage qui ne correspond pas
à un rectangle, il vaut mieux utiliser Item (dont dérivent tous les composants
graphiques), qui définit toute une série de propriétés de base [22] mais pas
d'apparence. MouseArea est par exemple dans ce cas : une zone sensible doit exister
à l'écran (avoir une existence graphique), mais se superpose à un autre composant.
Tout au contraire, les modèles ne sont pas des composants graphiques : ils héritent
de Component. Les fonctionnalités disponibles sont alors basiques, mais nécessaires
dans toute application Qt Quick : posséder un identifiant, gérer la fin du chargement
du composant, principalement.
Une fois défini, un composant est directement utilisable par d'autres fichiers QML du
même dossier, sans formalité supplémentaire. S'il se situe ailleurs dans la hiérarchie, il
devient nécessaire d'importer le dossier qui contient le composant souhaité : par
exemple, pour des composants rangés dans un dossier app/components quand le
fichier principal est dans le dossier app/main, il faut utiliser la directive import
../components.
app
components
main
main.qml
components
ReuseableComponent.qml
Dans le cadre de BiblioApp, on peut facilement extraire l'interface principale, qui
hérite de ApplicationWindow, pour la déplacer dans un composant BiblioApp.qml
(attention à la capitale !). L'interface principale du fichier main.qml se réduit alors à
371
Précédent

- 372/494

Suivant