PySide6.QtRemoteObjects.QRemoteObjectNode¶
- class QRemoteObjectNode¶
Qt远程对象网络上的一个节点。更多…
继承者:
QRemoteObjectHostBase
,QRemoteObjectRegistryHost
,QRemoteObjectHost
概要¶
属性¶
heartbeatIntervalᅟ
- 心跳间隔时间(毫秒)persistedStoreᅟ
- 允许为节点设置一个QRemoteObjectAbstractPersistedStore实例registryUrlᅟ
- 此节点使用的注册表地址
方法¶
def
__init__()
def
acquireDynamic()
def
acquireModel()
def
connectToNode()
def
instances()
def
lastError()
def
persistedStore()
def
registry()
def
registryUrl()
虚拟方法¶
def
setName()
def
setRegistryUrl()
信号¶
def
error()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QRemoteObjectNode
类提供了进入 QtRemoteObjects 网络的入口点。一个网络可以简单到只有两个节点,也可以是由多个进程和设备组成的任意复杂网络。一个
QRemoteObjectNode
没有其他节点可以连接的URL,因此只能获取副本。它不能共享源对象(只有QRemoteObjectHost
和QRemoteObjectRegistryHost
节点可以共享)。节点可以直接使用
connectToNode
相互连接,或者它们可以使用QRemoteObjectRegistry
来简化连接。QRemoteObjectRegistry
是一个特殊的副本,可供连接到注册表 URL 的每个节点使用。它知道如何连接到网络上的每个 QRemoteObjectSource 对象。- class ErrorCode¶
此枚举类型指定了与
QRemoteObjectNode
错误相关的各种错误代码:常量
描述
QRemoteObjectNode.NoError
没有错误。
QRemoteObjectNode.RegistryNotAcquired
无法获取注册表。
QRemoteObjectNode.RegistryAlreadyHosted
注册表已经定义并正在托管源。
QRemoteObjectNode.NodeIsNoServer
给定的
QRemoteObjectNode
不是主机节点。QRemoteObjectNode.ServerAlreadyCreated
主机节点已经被初始化。
QRemoteObjectNode.UnintendedRegistryHosting
尝试创建一个主机
QRemoteObjectNode
并将其自身作为注册表连接。QRemoteObjectNode.OperationNotValidOnClientNode
尝试的操作在客户端
QRemoteObjectNode
上无效。QRemoteObjectNode.SourceNotRegistered
给定的 QRemoteObjectSource 未在此节点上注册。
QRemoteObjectNode.MissingObjectName
给定的QObject没有设置objectName()。
QRemoteObjectNode.HostUrlInvalid
给定的URL具有无效或无法识别的方案。
QRemoteObjectNode.ProtocolMismatch
客户端和服务器具有不同的协议版本。
QRemoteObjectNode.ListenFailed
无法在指定的主机端口上监听。
QRemoteObjectNode.SocketAccessError
客户端不允许连接到服务器。请确保
setLocalServerOptions
设置正确。
注意
当使用
from __feature__ import true_property
时,属性可以直接使用,否则通过访问器函数使用。- property heartbeatIntervalᅟ: int¶
此属性保存心跳间隔,单位为毫秒。
心跳(仅对套接字连接有帮助)会定期向连接的节点发送消息,以检测连接是否中断。如果检测到连接断开,Qt Remote Objects 将尝试自动重新连接。此函数可以帮助进行检测,因为客户端只有在尝试发送数据时才会检测到服务器不可用。
值为
0
(默认值)将禁用心跳。- Access functions:
- property persistedStoreᅟ: QRemoteObjectAbstractPersistedStore¶
此属性允许为节点设置一个
QRemoteObjectAbstractPersistedStore
实例。允许具有PERSISTED特性的副本PROP成员在删除副本时保存其当前值,并在下次启动副本时恢复存储的值。
需要一个
QRemoteObjectAbstractPersistedStore
类实现来控制持久化的位置和方式。- Access functions:
此属性保存此节点使用的
Registry
的地址。如果没有使用注册表,这是一个空的QUrl。
- Access functions:
QRemoteObjectNode
的默认构造函数,带有给定的parent
。以这种方式构造的节点无法连接,因此无法在网络上暴露源对象。它也不会包含QRemoteObjectRegistry
,除非使用setRegistryUrl
手动设置。QRemoteObjectNode
连接到一个 {QRemoteObjectRegistry
} {Registry}。以这种方式构建的节点无法连接,因此无法在网络上暴露源对象。查找并连接到其他(主机)节点的操作由QRemoteObjectRegistry
指定的registryAddress
处理。- acquireDynamic(name)¶
- Parameters:
name – str
- Return type:
返回源
name
的QRemoteObjectDynamicReplica
。- acquireModel(name[, action=QtRemoteObjects.FetchRootSize[, rolesHint={}]])¶
- Parameters:
name – str
action –
InitialAction
rolesHint – 整数列表
- Return type:
返回一个指向Replica的指针,该指针专门从QAbstractItemModel派生。提供的
name
必须与用于将Model放到网络上的匹配enableRemoting
使用的名称相匹配。action
指定是否应在发出initialized
信号之前获取数据。如果设置为PrefetchData
,则将预取rolesHint
中角色的数据。如果rolesHint
为空,则将预取Source公开的所有角色的数据。返回的模型在初始化之前将是空的,直到使用Source进行初始化。
为了通过External QIODevices获取Replica对象,Qt Remote Objects需要访问各个节点之间的通信通道(一个QIODevice)。正是addClientSideConnection()调用实现了这一点,它将
ioDevice
作为输入。任何未调用addClientSideConnection的acquire()
调用仍然有效,但如果没有提供到Host节点的连接,Node将无法初始化Replica。将客户端节点连接到主机节点的
address
。连接将保持有效,直到主机节点被删除或无法通过网络访问。
一旦客户端连接到主机,如果相应的源正在远程传输,则可以获取有效的副本。
成功时返回
true
,否则返回false
(通常是无法识别的URL,或连接到已经连接的地址)。- heartbeatInterval()¶
- Return type:
整数
属性
heartbeatIntervalᅟ
的获取器。- heartbeatIntervalChanged(heartbeatInterval)¶
- Parameters:
heartbeatInterval – int
属性
heartbeatIntervalᅟ
的通知信号。- instances(typeName)¶
- Parameters:
typeName – str
- Return type:
字符串列表
此函数重载了
instances()
。这个便捷函数提供了与模板版本相同的结果,但将Source类的名称作为参数(
typeName
),而不是从类类型中推导出来。返回最后设置的错误。
- persistedStore()¶
- Return type:
另请参阅
属性
persistedStoreᅟ
的获取器。- registry()¶
- Return type:
返回指向节点的
QRemoteObjectRegistry
的指针,如果节点正在使用注册表功能;否则返回None
。- registryUrl()¶
- Return type:
另请参阅
属性
registryUrlᅟ
的获取器。- remoteObjectAdded(loc)¶
- Parameters:
loc – .std.pairQString,QRemoteObjectSourceLocationInfo
每当一个新的Source对象被添加到Registry时,就会发出此信号。如果没有设置Registry(即通过
connectToNode
直接建立的连接上的Sources),则不会发出此信号。loc
参数包含有关添加的Source的信息,包括名称、类型和托管Node的QUrl。- remoteObjectRemoved(loc)¶
- Parameters:
loc – .std.pairQString,QRemoteObjectSourceLocationInfo
每当从注册表中移除一个已知的Source对象时,都会发出此信号。如果没有设置注册表(即通过
connectToNode
直接建立的连接上的Sources),则不会发出此信号。loc
参数包含有关被移除的Source的信息,包括名称、类型和托管节点的QUrl。- setHeartbeatInterval(interval)¶
- Parameters:
interval – 整数
另请参阅
属性
heartbeatIntervalᅟ
的设置器。- setName(name)¶
- Parameters:
name – str
将
name
设置为此节点的内部名称。然后将其作为日志记录的一部分输出(如果启用)。如果您从多个节点合并日志数据,这主要是有用的。- setPersistedStore(persistedStore)¶
- Parameters:
persistedStore –
QRemoteObjectAbstractPersistedStore
另请参阅
属性
persistedStoreᅟ
的设置器。- waitForRegistry([timeout=30000])¶
- Parameters:
timeout – int
- Return type:
布尔
阻塞直到此节点的Registry初始化或
timeout
(以毫秒为单位)到期。如果返回时Registry成功初始化,则返回true
,否则返回false
。