PySide6.QtRemoteObjects.QRemoteObjectHostBase

class QRemoteObjectHostBase

QRemoteObjectHostBase 类提供了 HostRegistryHost 类共有的基础功能。更多

PySide6.QtRemoteObjects.QRemoteObjectHostBase 的继承图

继承者: QRemoteObjectRegistryHost, QRemoteObjectHost

概要

方法

虚拟方法

注意

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

详细描述

QRemoteObjectHostBase 是一个不能直接实例化的基类。它提供了所有主机节点(HostRegistryHost)共享的 enableRemotingdisableRemoting 功能,以及暴露 Source 对象到远程对象网络所需的逻辑。

class AllowedSchemas

此枚举用于指定节点是否接受具有未识别方案的url作为hostUrl。默认情况下,仅接受具有已知方案的url,但使用AllowExternalRegistration将使Registry能够将您的外部(相对于QtRO)url传递给客户端节点。

常量

描述

QRemoteObjectHostBase.BuiltInSchemasOnly

仅允许将hostUrl设置为QtRO支持的架构。这是默认值,如果提供了未识别的架构,将导致设置节点错误。

QRemoteObjectHostBase.AllowExternalRegistration

提供的模式被注册为外部模式

另请参阅

QRemoteObjectHost

addHostSideConnection(ioDevice)
Parameters:

ioDeviceQIODevice

为了通过外部QIO设备对象进行enableRemoting(),Qt远程对象需要访问各个节点之间的通信通道(一个QIODevice)。在端,通过调用addHostSideConnection()并传入ioDevice作为输入来实现这一点。任何enableRemoting()调用在不调用addHostSideConnection的情况下仍然可以工作,但如果没有提供到副本节点的连接,节点将无法共享对象。在调用此函数之前,您必须使用唯一的URL调用setHostUrl (),并设置AllowExternalRegistration

disableRemoting(remoteObject)
Parameters:

remoteObjectQObject

Return type:

布尔

禁用QObject remoteObject的远程访问。如果当前节点是客户端节点或remoteObject未注册,则返回false;如果成功为Source对象禁用远程访问,则返回true

警告

调用此方法后,此对象的副本将不再有效。

另请参阅

enableRemoting()

enableRemoting(object[, name=""])
Parameters:
Return type:

布尔

使主机节点能够动态提供对QObject object的远程访问。连接到托管此对象的节点的客户端节点可以获取此源的副本。

可选的 name 定义了查找名称,通过该名称可以使用 acquire() 获取 QObject。如果没有明确设置,则将使用 QCLASSINFO_REMOTEOBJECT_TYPE 中给出的名称。如果没有为 QObject 定义这样的宏,则使用 QObject::objectName()。

如果当前节点是客户端节点,或者QObject已经注册为远程对象,则返回false;如果动态QObject成功启用了远程功能,则返回true

另请参阅

disableRemoting()

enableRemoting(model, name, roles[, selectionModel=None])
Parameters:
Return type:

布尔

这个enableRemoting()的重载特定于QAbstractItemModel类型(或任何从QAbstractItemModel派生的类型)。如果您希望模型和模型的HMI在不同的进程中运行,这将非常有用。

三个必需的参数是model本身,用于查找模型的name,以及应在副本端公开的roles。如果您希望在SourceReplica之间同步选择,可以使用可选的selectionModel参数。这仅在使用单个副本时推荐使用。

在幕后,Qt Remote Objects 会批量处理 data() 查询,并在可能的情况下预取数据,以使模型交互尽可能响应迅速。

如果当前节点是客户端节点,或者QObject已经注册为远程节点,则返回false,如果为QAbstractItemModel成功启用了远程功能,则返回true

另请参阅

disableRemoting()

hostUrl()
Return type:

QUrl

proxy(registryUrl[, hostUrl={}])
Parameters:
Return type:

布尔

reverseProxy()
Return type:

布尔

setHostUrl(hostAddress[, allowedSchemas=QRemoteObjectHostBase.AllowedSchemas.BuiltInSchemasOnly])
Parameters:
Return type:

布尔