class QRemoteObjectNode#

Qt远程对象网络中的一个节点。 更多

Inheritance diagram of PySide6.QtRemoteObjects.QRemoteObjectNode

继承自: QRemoteObjectHostBase, QRemoteObjectRegistryHost, QRemoteObjectHost

概要#

属性#

方法#

虚方法#

信号#

注意

本文档可能包含从 C++ 自动翻译成 Python 的片段。我们始终欢迎为片段翻译做出贡献。如果您发现翻译存在问题,也可以在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来告知我们

详细描述#

QRemoteObjectNode 类提供了一个访问 QtRemoteObjects 网络的入口。一个网络可能只有两个节点,也可能是一个非常复杂的进程和设备的集合。

QRemoteObjectNode 没有其他节点可以连接的 URL,因此只能获取副本。它不能共享源对象(只有 QRemoteObjectHostQRemoteObjectRegistryHost 节点可以共享)。

节点可以通过 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时可以直接使用属性,否则通过访问函数。

属性heartbeatInterval: int#

此属性包含心跳间隔(以毫秒为单位)。

心跳(仅适用于socket连接)会定期向已连接的节点发送消息,以检测连接是否中断。如果Qt Remote Objects检测到连接丢失,它会尝试自动重新连接。此功能有助于检测,因为客户端仅在尝试发送数据时才会检测到服务器不可用。

默认值(0)将禁用心跳。

访问函数
属性persistedStore: QRemoteObjectAbstractPersistedStore#

此属性包含为节点设置一个QRemoteObjectAbstractPersistedStore实例的选项。

允许具有PERSISTED属性的副本成员在副本被删除时保存其当前值,并在下次副本启动时恢复存储的值。

需要QRemoteObjectAbstractPersistedStore类实现来控制持久性处理的地点和方法。

访问函数
属性 registryUrl...: QUrl#

此属性包含此节点使用的 Registry 的地址。

如果没有使用注册表,则这是空的 QUrl。

访问函数
__init__(registryAddress[, parent=None])#
参数:

QRemoteObjectNode 连接到一个 { QRemoteObjectRegistry } {注册} 。以这种方式构造的节点不能连接,因此不能在网络上公开源对象。查找和连接到其他(主)节点由 QRemoteObjectRegistry 处理,该地址由 registryAddress 指定。

__init__([parent=None])
参数:

parentQObject

QRemoteObjectNode 的默认构造函数,带有的 parent 。以这种方式构造的节点不能连接,因此不能在网络上公开源对象。此外,它也不会包含一个 QRemoteObjectRegistry ,除非使用 setRegistryUrl 手动设置。

acquireDynamic(name)#
参数:

name – 字符串

返回类型:

QRemoteObjectDynamicReplica

返回源 nameQRemoteObjectDynamicReplica 对象。

acquireModel(name[, action=QtRemoteObjects.FetchRootSize[, rolesHint={}]])#
参数:
  • name – 字符串

  • actionInitialAction

  • rolesHint – 整数列表

返回类型:

QAbstractItemModelReplica

返回一个指向特定来自 QAbstractItemModel 的 Replica 的指针。提供的 name 必须与使用匹配 enableRemoting 在网络上放置 Model 所使用的名称匹配。action 指定是否在发出 initialized 信号之前获取数据。如果设置为 PrefetchData ,则将预取 rolesHint 中的角色数据。如果 rolesHint 为空,则预先获取由 Source 浮露的所有角色的数据。

返回的模型将在使用 Source 初始化之前为空。

addClientSideConnection(ioDevice)#
参数:

ioDeviceQIODevice

为了通过外部QIODevices 获取 acquire() Replica 对象,Qt Remote Objects 需要访问各节点之间的通信通道(QIODevice)。通过调用 addClientSideConnection() 来实现这一点,并传入 ioDevice 作为输入。如果没有调用 addClientSideConnection() 而进行的 acquire() 调用仍然有效,但是如果没有提供与主机节点的连接,节点将无法初始化 Replica

另请参阅

addHostSideConnection

connectToNode(address)#
参数:

addressQUrl

返回类型:

bool

将客户端节点连接到位于 address 的主机节点。

连接将在主机节点被删除或无法通过网络访问时保持有效。

一旦客户端连接到主机,如果相应的源正在进行远程操作,则可以获取有效的副本。

如果成功返回 true,否则返回 false(通常是不识别的 URL,或者连接到已经连接的地址)。

error(errorCode)#
参数:

errorCodeErrorCode

heartbeatInterval()#
返回类型:

int

另请参阅

setHeartbeatInterval()

属性 heartbeatIntervalᅟ 的获取器。

heartbeatIntervalChanged(heartbeatInterval)#
参数:

heartbeatInterval – int

属性 heartbeatIntervalᅟ 的通知信号。

instances(typeName)#
参数:

typeName – str

返回类型:

字符串列表

此函数重载了 instances()

此便捷函数提供与模板版本相同的结果,但将 类的名称作为参数(typeName),而不是从类类型继承它。

lastError()#
返回类型:

ErrorCode

返回最后设置的错误。

persistedStore()#
返回类型:

QRemoteObjectAbstractPersistedStore

另请参阅

setPersistedStore()

属性 persistedStore 的获取器。

registry()#
返回类型:

QRemoteObjectRegistry

如果节点正在使用注册表功能,则返回节点 QRemoteObjectRegistry 的指针;否则返回 None

registryUrl()#
返回类型:

QUrl

另请参阅

setRegistryUrl()

属性 registryUrl 的获取器。

remoteObjectAdded(arg__1)#
参数:

arg__1 – .std.pairQString,QRemoteObjectSourceLocationInfo

每当向注册表添加新的 对象时,都会发出此信号。如果没有设置注册表(即通过 connectToNode 直接建立的连接的源),则不会发出信号。loc 参数包含有关添加的源的信息,包括名称、类型和托管节点的 QUrl。

remoteObjectRemoved(arg__1)#
参数:

arg__1 – .std.pairQString,QRemoteObjectSourceLocationInfo

此信号会在从注册表中删除已知 对象时发出。如果没有设置注册表(即通过 connectToNode 直接建立连接的源),则不会发出该信号。《loc》参数包含关于已删除源的信息,包括名称、类型和宿主节点的 QUrl。

另请参阅

请参看 remoteObjectAddedinstances

setHeartbeatInterval(interval)#
参数:

interval – int

另请参阅

heartbeatInterval()

属性 heartbeatInterval 的设置器。

setName(name)#
参数:

name – 字符串

name 设置为该节点的内部名称。此名称会在日志输出中显示(如果已启用)。这主要用于合并来自多个节点的日志数据。

setPersistedStore(persistedStore)#
参数:

persistedStoreQRemoteObjectAbstractPersistedStore

另请参阅

persistedStore()

属性 persistedStore 的设置器。

setRegistryUrl(registryAddress)#
参数:

registryAddressQUrl

返回类型:

bool

另请参阅

registryUrl()

waitForRegistry([timeout=30000])#
参数:

timeout – int

返回类型:

bool

阻塞直到此节点的 注册表 初始化成功或超时(以毫秒计)到期。如果返回时 注册表 成功初始化,则返回 true,否则返回 false