Application client de synchronisation horaire
Un client qui détient une réplique d'un objet « time » provenant d'un serveur et affiche l'heure dans une horloge.
L'application client « Time » ouvre une fenêtre bleue contenant un message. Lorsque vous cliquez une fois, elle affiche une horloge. Lorsque vous cliquez à nouveau, elle affiche deux horloges, puis le processus se répète. L'horloge est définie dans Clock.qml et utilise le type QML « Time », implémenté en C++, pour régler l'heure de l'horloge à partir de l'heure du serveur.

Avant d’exécuter l’application cliente Time
Pour exécuter cet exemple, l’application « Time Server » doit déjà être en cours d’exécution sur le même hôte que cette application. Elle configure un serveur de registre et héberge une instance d’une sous-classe de la classe ` MinuteTimerSimpleSource `. Si elle n’est pas en cours d’exécution, un message d’erreur s’affichera dans la fenêtre.
Définition d’objets distants à l’aide d’un fichier REP
Le fichier REP « timemodel.rep », situé dans le répertoire parent de cette application, sert à générer les fichiers d’en-tête utilisés par les deux applications. Pour cette application, le fichier « rep_timemodel_replica.h » généré définit la classe ` MinuteTimerReplica`, la réplique de la classe ` MinuteTimer`, ainsi que d’autres classes associées.
La classe TimeModel
La classe TimeModel, définie dans les fichiers plugin.h et plugin.cpp, implémente le type QML Time. Elle contacte le serveur de registre sur localhost à l’aide de l’URL « local:registry », récupère une réplique, MinuteTimerReplica, et s’abonne à ses signaux. Les propriétés sont mises à jour automatiquement.
Les types QML
Le QML défini dans « Clock.qml » dessine une montre à l’aide des propriétés hours et minutes.
L’application ouvre une fenêtre contenant le contenu « plugins.qml ». Elle alterne l’affichage de différents contenus à l’aide d’un Loader, passant à chaque clic de « plugins0.qml » à « plugins1.qml », puis à « plugins2.qml ».
Alors que « plugins0.qml » affiche un écran bleu avec un message, le type QML personnalisé « Clock » est utilisé dans « plugins1.qml », les propriétés « hours » et « minutes » étant définies sur les propriétés « hour » et « minute » de « Time ». Le fichier « plugins2.qml » est similaire mais affiche deux horloges.
import QtRemoteObjects
import QtQuick
import TimeExample // import types from the plugin
Rectangle {
width: 200
height: 400
color: "blue"
Clock {
id: clock1
anchors.top: parent.top
Time { // this class is defined in C++
id: time
node: node
}
Node {
id: node
registryUrl: "local:registry"
}
hours: time.hour
minutes: time.minute
valid: time.state == Time.Valid
}
}Voir aussi Application de serveur de temps.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.