Zeit-Client-Anwendung

Ein Client, der ein Replikat eines Zeitobjekts von einem Server besitzt und die Zeit in einer Uhr anzeigt.

Die Time Client Application öffnet ein blaues Fenster mit einer Meldung. Wenn Sie einmal klicken, wird eine Uhr angezeigt. Wenn Sie erneut klicken, werden zwei Uhren angezeigt, dann wiederholt sich der Vorgang. Die Uhr ist in Clock.qml definiert und verwendet den Time QML-Typ, der in C++ implementiert ist, um die Zeit der Uhr anhand der Zeit auf dem Server einzustellen.

Vor der Ausführung der Time Client-Anwendung

Um dieses Beispiel auszuführen, muss die Time Server Application bereits auf demselben Host wie diese Anwendung laufen. Sie richtet einen Registrierungsserver ein und hostet eine Instanz einer Unterklasse der Klasse MinuteTimerSimpleSource. Wenn sie nicht läuft, wird eine Fehlermeldung im Fenster angezeigt.

Definition von entfernten Objekten mit einer REP-Datei

Die REP-Datei "timemodel.rep" im übergeordneten Verzeichnis dieser Anwendung wird verwendet, um die von beiden Anwendungen verwendeten Header-Dateien zu erzeugen. Für diese Anwendung definiert die generierte Datei "rep_timemodel_replica.h" MinuteTimerReplica, die Replik von MinuteTimer, und andere verwandte Klassen.

Die TimeModel-Klasse

Die Klasse TimeModel in plugin.h und plugin.cpp implementiert den QML-Typ Time. Sie kontaktiert den Registrierungsserver auf localhost unter Verwendung der URL "local:registry", erwirbt ein Replikat, MinuteTimerReplica, und verbindet sich mit dessen Signalen. Die Eigenschaften werden automatisch aktualisiert.

Die QML-Typen

Die in "Clock.qml" definierte QML zeichnet eine Uhr mit den Eigenschaften Stunden und Minuten.

Die Anwendung öffnet ein Fenster mit dem Inhalt "plugins.qml". Es wechselt zwischen der Anzeige verschiedener Inhalte mit einem Loader, der bei jedem Klick zwischen "plugins0.qml", "plugins1.qml" und "plugins2.qml" wechselt.

Während "plugins0.qml" einen blauen Bildschirm mit einer Meldung anzeigt, wird in "plugins1.qml" der benutzerdefinierte QML-Typ Clock verwendet, wobei die Eigenschaften Stunden und Minuten auf die Stunden- und Minuteneigenschaften von Time gesetzt sind. Die Datei "plugins2.qml" ist ähnlich, zeigt aber zwei Uhren an.

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

    }
}

Beispielprojekt @ code.qt.io

Siehe auch Time Server Application.

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