visible: true
width: 260; height: 240
title: qsTr("Level crossing")
style: ApplicationWindowStyle {
background: Rectangle {
color: "black"
}
}
Rectangle {
id: red1
width: 80; height: 80; radius: 40
color: "red"
x: 20; y: 20
}
Rectangle {
id: red2
width: 80; height: 80; radius: 40
color: "red"
anchors.top: red1.top
anchors.left: red1.right
anchors.leftMargin: 60
}
Rectangle {
id: white
width: 80; height: 80; radius: 40
color: "white"
anchors.top: red1.bottom
anchors.topMargin: 30
anchors.left: red1.right
anchors.leftMargin: -10
}
}
Les états se définissent à l'aide de la propriété states, qui prend pour valeur une liste
d'états State, c'est-à-dire une série d'éléments séparés par des virgules, entre crochets
(par exemple, [State{}, State{}]). Chaque State possède un nom (name) et peut
indiquer, avec des composants PropertyChanges, l'ensemble des propriétés dont la
valeur change lors du passage à cet état. Ces états sont stockés au niveau d'un
composant MouseArea, dont le seul rôle est de récupérer des clics sur toute sa surface.
L'état courant est disponible dans la propriété state.
Une première manière de réaliser le feu de signalisation consiste à définir tous les états
au même endroit : notamment, le code nécessaire pour le clignotement est commun aux
trois feux. Ce dernier point nécessite un composant particulier : Timer. Il permet
418
Précédent

- 419/494

Suivant