PySide6.QtRemoteObjects.QRemoteObjectReplica¶
- class QRemoteObjectReplica¶
一个与远程对象网络上的Qt API交互(但不实现)的类。更多…
继承者:
QRemoteObjectRegistry
,QRemoteObjectDynamicReplica
概要¶
属性¶
方法¶
def
__init__()
def
initializeNode()
def
isInitialized()
def
isReplicaValid()
def
node()
def
propAsVariant()
def
send()
def
sendWithReply()
def
setChild()
def
state()
def
waitForSource()
虚拟方法¶
def
initialize()
def
setNode()
信号¶
def
initialized()
def
notified()
def
stateChanged()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
远程对象副本是另一个QObject(称为源对象)的QObject代理。一旦初始化,副本可以被视为源对象的“潜在副本”。也就是说,对源上的Q_PROPERTY的每次更改,或由源发出的信号,都将由所有副本对象更新/发出。延迟由涉及的任何操作系统的进程调度和网络通信延迟引入。只要副本已初始化且通信未中断,更改的接收和顺序是有保证的。
isInitialized
和state
属性(以及相应的initialized()
/stateChanged()
信号)允许确定 Replica 的状态。虽然Qt远程对象(QtRO)处理Replica对象的初始化和同步,但在幕后有许多步骤可能会失败,而这些步骤在单进程Qt应用程序中是不会遇到的。有关在使用远程对象网络时如何处理此类问题的建议,请参见Troubleshooting。
- class State¶
此枚举类型指定与
QRemoteObjectReplica
状态相关的各种状态代码:常量
描述
QRemoteObjectReplica.Uninitialized
DynamicReplica的初始值,在连接到源之前,关于副本的信息一无所知。
QRemoteObjectReplica.Default
静态副本的初始值,其中.rep文件中设置的任何默认值都可用,因此可以在必要时使用。
QRemoteObjectReplica.Valid
表示副本已连接,具有有效的属性值,并且可以与之交互。
QRemoteObjectReplica.Suspect
如果在初始化后与源的连接丢失,则会发生错误状态。
QRemoteObjectReplica.SignatureMismatch
错误状态,当与源建立连接时发生,但源和副本不是从同一个.rep派生的(仅适用于静态副本)。
注意
当使用
from __feature__ import true_property
时,属性可以直接使用,否则通过访问器函数使用。- property nodeᅟ: QRemoteObjectNode¶
此属性保存指向获取此对象的节点的指针。
- property stateᅟ: QRemoteObjectReplica.State¶
此属性保存返回副本状态。
此属性保存副本
State
。- Access functions:
- __init__()¶
- initialize()¶
- initializeNode(node[, name=""])¶
- Parameters:
节点 –
QRemoteObjectNode
name – str
- initialized()¶
一旦副本初始化完成,就会发出此信号。一个初始化的副本已经设置了所有属性值,但尚未发出任何属性更改通知。
- isInitialized()¶
- Return type:
布尔
如果此副本已使用来自Source对象的数据进行初始化,则返回
true
。否则返回false
。另请参阅
- isReplicaValid()¶
- Return type:
布尔
如果此副本已初始化并与托管Source的
node
建立了有效连接,则返回true
。否则返回false
。另请参阅
- node()¶
- Return type:
另请参阅
属性
nodeᅟ
的获取器。- notified()¶
一旦副本初始化并且所有属性更改通知都已发出,就会发出此信号。
有时将属性更改作为事件响应是有用的。例如,当某个属性更改发生时,您可能希望显示用户通知。然而,当副本首次变为
QRemoteObjectReplica::Valid
时,此用户通知也会被触发,因为所有属性更改信号都在此时发出。这并不总是可取的,而notified
允许开发者区分这两种情况。- persistProperties(repName, repSig, props)¶
- Parameters:
repName – str
repSig –
QByteArray
props – QVariant 的列表
- propAsVariant(i)¶
- Parameters:
i – 整数
- Return type:
对象
- retrieveProperties(repName, repSig)¶
- Parameters:
repName – str
repSig –
QByteArray
- Return type:
.QVariant 列表
- sendWithReply(call, index, args)¶
- Parameters:
call –
Call
index – 整数
args – QVariant 的列表
- Return type:
- setChild(i, arg__2)¶
- Parameters:
i – 整数
arg__2 – 对象
- setNode(node)¶
- Parameters:
节点 –
QRemoteObjectNode
另请参阅
属性
nodeᅟ
的设置器。返回副本的当前
state
状态。另请参阅
属性
stateᅟ
的获取器。每当副本的状态在
State
之间切换时,都会发出此信号。状态的变化用
state
和oldState
表示。另请参阅
属性
stateᅟ
的通知信号。- waitForSource([timeout=30000])¶
- Parameters:
timeout – int
- Return type:
布尔
阻塞调用,等待副本初始化或直到
timeout
(以毫秒为单位)到期。如果调用完成时副本已初始化,则返回true
,否则返回false
。如果
timeout
是 -1,此函数将不会超时。