QRemoteObjectReplica 类
一个与远程对象网络上的 Qt API 交互(但不实现)的类。 更多...
| 头文件 | #include <QRemoteObjectReplica> | 
| CMake | find_package(Qt6 REQUIRED COMPONENTS RemoteObjects) target_link_libraries(mytarget PRIVATE Qt6::RemoteObjects) | 
| qmake | QT += remoteobjects | 
| 继承自 | QObject | 
| 继承 | 
公共类型
| 枚举 | State { Uninitialized, Default, Valid, Suspect, SignatureMismatch } | 
属性
公共函数
| bool | isInitialized() const | 
| bool | isReplicaValid() const | 
| QRemoteObjectNode * | node() const | 
| virtual void | setNode(QRemoteObjectNode *node) | 
| QRemoteObjectReplica::State | state() const | 
| bool | waitForSource(int timeout = 30000) | 
信号
| void | initialized() | 
| void | notified() | 
| void | stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState) | 
详细描述
远程对象副本是另一个 QObject 的代理(称为 源 对象)。一旦初始化,副本可以被视为 源 对象的“隐写副本”。也就是说,源上 Q_PROPERTY 的任何更改,或者发出 源 的信号,都会由所有 副本 对象更新/发出。任何涉及的操作系统通过进程调度和网络安全通信延迟引入延迟。只要副本已初始化并且通信未中断,更改的接收和顺序就有保证。
isInitialized 和 state 属性(以及相应的 initialized()/stateChanged() 信号)允许确定 副本 的状态。
虽然 Qt 远程对象 (QtRO) 处理了复制品 (Replica) 的初始化和同步,但在后台有众多可能失败且在单个进程 Qt 应用程序中不会遇到的操作步骤。请参阅 复制品 的详细说明和 故障排除,了解在远程对象网络上使用这些功能时如何处理此类问题。
成员类型文档
枚举 QRemoteObjectReplica::State
此枚举类型指定了与 QRemoteObjectReplica 状态相关的各种状态代码
| 常量 | 值 | 描述 | 
|---|---|---|
| QRemoteObjectReplica::Uninitialized | 0 | 动态复制品的初始值,在此处连接到源之前,关于复制品没有任何信息。 | 
| QRemoteObjectReplica::Default | 1 | 静态复制品的初始值,其中提供了在 .rep 文件中设置的任何默认值,以便必要时可以使用。 | 
| QRemoteObjectReplica::Valid | 2 | 表示复制品已连接,具有良好的属性值,可以与之交互。 | 
| QRemoteObjectReplica::Suspect | 3 | 如果在初始化后丢失到源的连接,将发生错误状态。 | 
| QRemoteObjectReplica::SignatureMismatch | 4 | 如果在源处建立了连接,但源和复制品不是从相同的 .rep(仅适用于静态复制品)派生的,将发生错误状态。 | 
属性文档
node : QRemoteObjectNode*
此属性包含一个指向从其中获取此对象的节点的指针。
访问函数
| QRemoteObjectNode * | node() const | 
| virtual void | setNode(QRemoteObjectNode *node) | 
[read-only] state : const State
返回复制品状态。
此属性保留复制品 QRemoteObjectReplica::State。
访问函数
| QRemoteObjectReplica::State | state() const | 
通知信号
| void | stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState) | 
成员函数文档
[signal] void QRemoteObjectReplica::initialized()
当复制品初始化完成后,会发出此信号。初始化的复制品设置了所有属性值,但尚未发出任何属性更改通知。
另请参阅isInitialized() 和 stateChanged。
bool QRemoteObjectReplica::isInitialized() const
如果此复制品已使用来自 源 对象的数据进行初始化,则返回 true。否则返回 false。
另请参阅state。
bool QRemoteObjectReplica::isReplicaValid() const
如果此复制品已初始化并与托管 源 的 节点 保持有效连接,则返回 true。否则返回 false。
另请参阅isInitialized。
[信号] void QRemoteObjectReplica::notified()
此信号在副本初始化后并已发出所有属性更改通知时发出。
有时将属性更改作为事件响应是有用的。例如,您可能希望通过某些属性更改显示用户通知。但是,当副本首次成为 QRemoteObjectReplica::Valid 时,也会触发此类用户通知,因为那时会发出所有属性更改信号。这并不总是令人满意,而 notified 允许开发人员区分这两种情况。
QRemoteObjectReplica::State QRemoteObjectReplica::state() const
返回副本当前 状态。
注意:属性状态的获取函数。
另请参阅:isInitialized。
[信号] void QRemoteObjectReplica::stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState)
此信号在每个副本的状态在 QRemoteObjectReplica::State 之间切换时发出。
状态更改由 state 和 oldState 表示。
注意:属性 state 的通知信号。
另请参阅:state() 和 initialized。
bool QRemoteObjectReplica::waitForSource(int timeout = 30000)
负责等待副本初始化或直到超时(以毫秒为单位)的阻塞调用。如果调用完成后副本已初始化,则返回 true,否则返回 false。
如果 timeout 为 -1,则此函数不会超时。
另请参阅:isInitialized() 和 initialized。
© 2024 The Qt Company Ltd. 本文档内包含的贡献是各自所有者的版权。本提供的文档是根据由自由软件基金会发布的 GNU自由文档许可证版本1.3 的条款许可的。Qt及其相关标志是全球芬兰公司和/或其他国家的商标。所有其他商标均为其各自所有者的财产。