时间客户端应用程序
一个客户端从服务器持有时间对象的一个副本,并在钟表中显示时间的客户端。
时间客户端应用程序打开一个带有消息的蓝色窗口。点击一次,显示钟表。再次点击,显示两个钟表,然后重复。钟表定义在Clock.qml中,并使用C++中实现的Time
QML类型来使用服务器上的时间设置钟表的时间。
在运行时间客户端应用程序之前
要运行此示例,必须在相同主机上已运行时间服务器应用程序。它设置注册服务器,并托管MinuteTimerSimpleSource
类的子类的实例。如果没有运行,窗口中将出现错误消息。
使用REP文件定义远程对象
此应用程序父目录中的REP文件"timemodel.rep"用于生成两个应用程序使用的头文件。对于此应用程序,生成的"rep_timemodel_replica.h"文件定义了MinuteTimerReplica
,它是MinuteTimer
的副本,以及其他相关类。
TimeModel
类
TimeModel
类在plugin.h和plugin.cpp中实现,它实现了QML类型Time
。它使用URL"local:registry"在本地主机上联系注册服务器,获取副本MinuteTimerReplica
,并连接到其信号。属性将自动更新。
QML类型
“Clock.qml”中的QML使用小时和分钟属性绘制手表。
应用程序打开内容为"plugins.qml"的窗口。它使用Loader在显示不同内容之间切换,每个点击在"plugins0.qml"、"plugins1.qml"和"plugins2.qml"之间循环。
当"plugins0.qml"显示带有消息的蓝色屏幕时,自定义QML类型Clock
在"plugins1.qml"中使用,小时和分钟属性设置为Time
的小时和分钟属性。"plugins2.qml"文件类似,但显示两个钟表。
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 } }
另请参阅时间服务器应用程序。
© 2024 Qt公司有限公司。本文档中的文档贡献均为各自所有者的版权。提供的文档根据开源软件基金会的规定,在 GNU自由文档许可证版本1.3 的条款下获得许可。Qt及其相关标志是Qt公司在芬兰及全球其他国家的商标。商标的所有其他商标均为其各自所有者的财产。