En esta página

Aplicación cliente de tiempo

Un cliente que mantiene una réplica de un objeto de tiempo de un servidor y muestra la hora en un reloj.

La Aplicación Cliente de Tiempo abre una ventana azul con un mensaje. Al hacer clic una vez, muestra un reloj. Cuando hace clic de nuevo, dos relojes, y luego se repite. El reloj está definido en Clock.qml y utiliza el tipo Time QML, implementado en C++, para ajustar la hora del reloj utilizando la hora del servidor.

Ventana de aplicación que muestra dos relojes analógicos sincronizados

Antes de Ejecutar la Aplicación Cliente de Tiempo

Para ejecutar este ejemplo, la Aplicación Servidor de Tiempo debe estar ya ejecutándose en el mismo host que esta aplicación. Configura un servidor de registro y aloja una instancia de una subclase de la clase MinuteTimerSimpleSource. Si no se está ejecutando, aparecerá un mensaje de error en la ventana.

Definición de objetos remotos mediante un fichero REP

El fichero REP "timemodel.rep" en el directorio padre de esta aplicación se utiliza para generar los ficheros de cabecera utilizados por ambas aplicaciones. Para esta aplicación, el fichero generado "rep_timemodel_replica.h" define MinuteTimerReplica, la réplica de MinuteTimer, y otras clases relacionadas.

La clase TimeModel

La clase TimeModel en plugin.h y plugin.cpp implementa el tipo QML Time. Se pone en contacto con el servidor de registro en localhost utilizando la URL "local:registry", adquiere una réplica, MinuteTimerReplica, y se conecta a sus señales. Las propiedades se actualizan automáticamente.

Los tipos QML

El QML definido en "Clock.qml" dibuja un reloj utilizando las propiedades horas y minutos.

La aplicación abre una ventana con el contenido "plugins.qml". Cambia entre mostrar diferentes contenidos usando un Loader, ciclando por cada click entre "plugins0.qml", "plugins1.qml", y "plugins2.qml".

Mientras que "plugins0.qml" muestra una pantalla azul con un mensaje, en "plugins1.qml" se utiliza el tipo de QML personalizado Clock, con las propiedades de horas y minutos ajustadas a las propiedades de horas y minutos de Time. El archivo "plugins2.qml" es similar pero muestra dos relojes.

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

    }
}

Proyecto de ejemplo @ code.qt.io

Véase también Aplicación de servidor horario.

© 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.