PySide6.QtRemoteObjects.QRemoteObjectHostBase¶
- class QRemoteObjectHostBase¶
QRemoteObjectHostBase
类提供了Host
和RegistryHost
类共有的基础功能。更多…继承者:
QRemoteObjectRegistryHost
,QRemoteObjectHost
概要¶
方法¶
def
enableRemoting()
def
proxy()
def
reverseProxy()
虚拟方法¶
def
hostUrl()
def
setHostUrl()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QRemoteObjectHostBase
是一个不能直接实例化的基类。它提供了所有主机节点(Host
和RegistryHost
)共享的enableRemoting
和disableRemoting
功能,以及暴露 Source 对象到远程对象网络所需的逻辑。- class AllowedSchemas¶
此枚举用于指定节点是否接受具有未识别方案的url作为hostUrl。默认情况下,仅接受具有已知方案的url,但使用
AllowExternalRegistration
将使Registry能够将您的外部(相对于QtRO)url传递给客户端节点。常量
描述
QRemoteObjectHostBase.BuiltInSchemasOnly
仅允许将hostUrl设置为QtRO支持的架构。这是默认值,如果提供了未识别的架构,将导致设置节点错误。
QRemoteObjectHostBase.AllowExternalRegistration
提供的模式被注册为外部模式
另请参阅
为了通过外部QIO设备对源对象进行
enableRemoting()
,Qt远程对象需要访问各个节点之间的通信通道(一个QIODevice)。在源端,通过调用addHostSideConnection()并传入ioDevice
作为输入来实现这一点。任何enableRemoting()
调用在不调用addHostSideConnection的情况下仍然可以工作,但如果没有提供到副本节点的连接,节点将无法共享源对象。在调用此函数之前,您必须使用唯一的URL调用setHostUrl
(),并设置AllowExternalRegistration
。禁用QObject
remoteObject
的远程访问。如果当前节点是客户端节点或remoteObject
未注册,则返回false
;如果成功为Source对象禁用远程访问,则返回true
。使主机节点能够动态提供对QObject
object
的远程访问。连接到托管此对象的节点的客户端节点可以获取此源的副本。可选的
name
定义了查找名称,通过该名称可以使用acquire()
获取 QObject。如果没有明确设置,则将使用 QCLASSINFO_REMOTEOBJECT_TYPE 中给出的名称。如果没有为 QObject 定义这样的宏,则使用 QObject::objectName()。如果当前节点是客户端节点,或者QObject已经注册为远程对象,则返回
false
;如果动态QObject成功启用了远程功能,则返回true
。另请参阅
- enableRemoting(model, name, roles[, selectionModel=None])
- Parameters:
model –
QAbstractItemModel
name – str
roles – .整数列表
selectionModel –
QItemSelectionModel
- Return type:
布尔
这个
enableRemoting()
的重载特定于QAbstractItemModel类型(或任何从QAbstractItemModel派生的类型)。如果您希望模型和模型的HMI在不同的进程中运行,这将非常有用。三个必需的参数是
model
本身,用于查找模型的name
,以及应在副本端公开的roles
。如果您希望在Source和Replica之间同步选择,可以使用可选的selectionModel
参数。这仅在使用单个副本时推荐使用。在幕后,Qt Remote Objects 会批量处理 data() 查询,并在可能的情况下预取数据,以使模型交互尽可能响应迅速。
如果当前节点是客户端节点,或者QObject已经注册为远程节点,则返回
false
,如果为QAbstractItemModel成功启用了远程功能,则返回true
。另请参阅
- reverseProxy()¶
- Return type:
布尔
- setHostUrl(hostAddress[, allowedSchemas=QRemoteObjectHostBase.AllowedSchemas.BuiltInSchemasOnly])¶
- Parameters:
hostAddress –
QUrl
allowedSchemas –
AllowedSchemas
- Return type:
布尔