Ce minuteur est configuré de manière spécifique pour chaque état, avec notamment
une fréquence qui varie (les lampes rouges clignotent plus rapidement que la
blanche). Il est démarré lors du changement d'état par la propriété running. Un
changement de valeur d'une propriété peut inclure les gestionnaires de signal : le
code à exécuter diffère selon l'état (une ou deux ampoules à faire varier). Le code
proprement dit inverse simplement la couleur donnée ; le point important est que la
comparaison de couleurs doit se faire avec Qt.colorEqual (en interne, toutes les
couleurs sont stockées comme des triplets de nombres au format RGB, alors que la
comparaison se fait avec une chaîne de caractères décrivant la couleur).
L'état où le passage à niveau est interdit aux voitures est très similaire au premier, à
l'exception du gestionnaire de signal : l'ordre des deux lignes a de l'importance. La
comparaison se fait selon la couleur d'une des deux lampes et son résultat doit rester
identique pour les deux changements : si la comparaison se fait sur la première
lampe, alors la couleur de la deuxième doit être modifiée d'abord.
Les changements d'état sont déclenchés par un clic dans l'interface, n'importe où. Si
l'état était allowed, il devient disallowed et vice-versa.
Finalement, on définit l'état initial par la propriété state. Dans ce cas, Qt Quick
effectue la transition vers cet état, ce qui garantit l'initialisation de l'interface.
Note > On aurait aussi pu utiliser le gestionnaire de signal Component.onCompleted
(disponible dans tout composant et exécuté dès la fin de son chargement, le plus
souvent au démarrage de l'application) pour exécuter une ligne de code comme
state = "allowed".
420
une fréquence qui varie (les lampes rouges clignotent plus rapidement que la
blanche). Il est démarré lors du changement d'état par la propriété running. Un
changement de valeur d'une propriété peut inclure les gestionnaires de signal : le
code à exécuter diffère selon l'état (une ou deux ampoules à faire varier). Le code
proprement dit inverse simplement la couleur donnée ; le point important est que la
comparaison de couleurs doit se faire avec Qt.colorEqual (en interne, toutes les
couleurs sont stockées comme des triplets de nombres au format RGB, alors que la
comparaison se fait avec une chaîne de caractères décrivant la couleur).
L'état où le passage à niveau est interdit aux voitures est très similaire au premier, à
l'exception du gestionnaire de signal : l'ordre des deux lignes a de l'importance. La
comparaison se fait selon la couleur d'une des deux lampes et son résultat doit rester
identique pour les deux changements : si la comparaison se fait sur la première
lampe, alors la couleur de la deuxième doit être modifiée d'abord.
Les changements d'état sont déclenchés par un clic dans l'interface, n'importe où. Si
l'état était allowed, il devient disallowed et vice-versa.
Finalement, on définit l'état initial par la propriété state. Dans ce cas, Qt Quick
effectue la transition vers cet état, ce qui garantit l'initialisation de l'interface.
Note > On aurait aussi pu utiliser le gestionnaire de signal Component.onCompleted
(disponible dans tout composant et exécuté dès la fin de son chargement, le plus
souvent au démarrage de l'application) pour exécuter une ligne de code comme
state = "allowed".
420
