Sur cette page

Application client temporel

Un client qui détient une réplique d'un objet temporel d'un serveur et affiche l'heure dans une horloge.

L'application client temporel ouvre une fenêtre bleue avec un message. Lorsque vous cliquez une fois, une horloge s'affiche. Lorsque vous cliquez à nouveau, deux horloges s'affichent, puis l'opération 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 en utilisant l'heure du serveur.

Fenêtre d'application affichant deux horloges analogiques synchronisées

Avant d'exécuter l'application client 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 met en place un serveur de registre et héberge une instance d'une sous-classe de la classe MinuteTimerSimpleSource. S'il 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" dans le répertoire parent de cette application est utilisé pour 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 MinuteTimerReplica, la réplique de MinuteTimer, et d'autres classes connexes.

La classe TimeModel

La classe TimeModel dans 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", acquiert une réplique, MinuteTimerReplica, et se connecte à ses signaux. Les propriétés sont automatiquement mises à jour.

Les types QML

Le QML défini dans "Clock.qml" dessine une montre en utilisant les propriétés heures et minutes.

L'application ouvre une fenêtre avec le contenu "plugins.qml". Elle passe de l'affichage de différents contenus à l'utilisation d'un chargeur (Loader), en effectuant un cycle à chaque clic entre "plugins0.qml", "plugins1.qml" et "plugins2.qml".

Alors que "plugins0.qml" affiche un écran bleu avec un message, le type QML personnalisé Clock est utilisé dans "plugins1.qml", avec les propriétés heures et minutes définies sur les propriétés heures et minutes 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

    }
}

Exemple de projet @ code.qt.io

Voir aussi Application 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.