このページについて

時刻クライアントアプリケーション

サーバーからの時刻オブジェクトのレプリカを保持し、時計に時刻を表示するクライアントです。

「Time Client Application」は、メッセージが表示された青いウィンドウを開きます。1回クリックすると時計が表示され、もう一度クリックすると2つの時計が表示され、その後この動作が繰り返されます。時計は Clock.qml で定義されており、C++で実装されたTime というQML型を使用して、サーバー上の時刻に基づいて時計の時刻を設定しています。

2つの同期したアナログ時計を表示するアプリケーションウィンドウ

タイムクライアントアプリケーションの実行前に

このサンプルを実行するには、このアプリケーションと同じホスト上で「Time Server Application」がすでに実行されている必要があります。このアプリケーションはレジストリサーバーを設定し、MinuteTimerSimpleSource クラスのサブクラスのインスタンスをホストします。実行されていない場合、ウィンドウにエラーメッセージが表示されます。

REPファイルを使用したリモートオブジェクトの定義

このアプリケーションの親ディレクトリにあるREPファイル「timemodel.rep」は、両方のアプリケーションで使用されるヘッダーファイルを生成するために使用されます。このアプリケーションの場合、生成された「rep_timemodel_replica.h」ファイルは、MinuteTimerReplica 、MinuteTimer のレプリカ、およびその他の関連クラスを定義します。

TimeModel クラス

plugin.h および plugin.cpp 内のTimeModel クラスは、QML タイプTime を実装しています。このクラスは、URL "local:registry" を使用して localhost 上のレジストリサーバーに接続し、レプリカMinuteTimerReplica を取得して、そのシグナルに接続します。プロパティは自動的に更新されます。

QML タイプ

「Clock.qml」で定義されたQMLは、hoursおよびminutesプロパティを使用して時計を描画します。

このアプリケーションは、「plugins.qml」の内容を含むウィンドウを開きます。Loaderを使用して異なるコンテンツの表示を切り替え、クリックするたびに「plugins0.qml」、「plugins1.qml」、および「plugins2.qml」を順番に切り替えます。

「plugins0.qml」はメッセージが表示された青い画面を表示しますが、「plugins1.qml」ではカスタムQML型Clock が使用され、そのhoursおよびminutesプロパティはTime のhourおよびminuteプロパティに設定されています。「plugins2.qml」ファイルも同様ですが、2つの時計を表示します。

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

    }
}

サンプルプロジェクト @ code.qt.io

「タイムサーバーアプリケーション」も参照してください 。

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