PySide6.QtRemoteObjects¶
- PySide6.QtRemoteObjects.QAbstractItemModelReplica
- PySide6.QtRemoteObjects.QConnectionAbstractServer
- PySide6.QtRemoteObjects.QRemoteObjectAbstractPersistedStore
- PySide6.QtRemoteObjects.QRemoteObjectDynamicReplica
- PySide6.QtRemoteObjects.QRemoteObjectHost
- PySide6.QtRemoteObjects.QRemoteObjectHostBase
- PySide6.QtRemoteObjects.QRemoteObjectNode
- PySide6.QtRemoteObjects.QRemoteObjectPendingCall
- PySide6.QtRemoteObjects.QRemoteObjectPendingCallWatcher
- PySide6.QtRemoteObjects.QRemoteObjectRegistry
- PySide6.QtRemoteObjects.QRemoteObjectRegistryHost
- PySide6.QtRemoteObjects.QRemoteObjectReplica
- PySide6.QtRemoteObjects.QRemoteObjectSettingsStore
- PySide6.QtRemoteObjects.QRemoteObjectSourceLocationInfo
- PySide6.QtRemoteObjects.QtROClientFactory
- PySide6.QtRemoteObjects.QtROClientIoDevice
- PySide6.QtRemoteObjects.QtROIoDeviceBase
- PySide6.QtRemoteObjects.QtROServerFactory
- PySide6.QtRemoteObjects.QtROServerIoDevice
- PySide6.QtRemoteObjects.QtRemoteObjects
详细描述¶
提供用于进程间通信的API。
远程对象概念¶
Qt Remote Objects (QtRO) 是一个为 Qt 开发的进程间通信 (IPC) 模块。该模块扩展了 Qt 的现有功能,以便轻松实现进程或计算机之间的信息交换。
Qt的一个关键特性,为了实现这种信息交换,是对象API(由其属性、信号和槽定义)与该API实现之间的区别。QtRO的目的是满足预期的API,即使真正的QObject
在不同的进程中。在对象副本(QtRO中的Replica)上调用的槽会被转发到真实对象(QtRO中的Source)进行处理。每个Replica都会接收到Source的更新,无论是属性更改还是发出的信号。
一个Replica是Source对象的轻量级代理,但Replica支持与QObjects相同的连接和行为,这使得它可以像Qt提供的任何其他QObject
一样使用。在幕后,QtRO处理了所有必要的操作,使Replica看起来像其Source。
请注意,远程对象的行为与传统远程过程调用(RPC)实现不同,例如:
在RPC中,客户端发出请求并等待响应。
在RPC中,服务器不会向客户端推送任何内容,除非是对请求的响应。
通常,RPC的设计使得不同的客户端彼此独立:例如,两个客户端可以向地图服务请求方向并获得不同的结果。
虽然在QtRO中可以实现这种RPC风格的行为,作为没有属性的Sources和具有返回值的槽,QtRO隐藏了处理实际上是远程的事实。你让一个节点给你Replica,而不是自己创建它,可能使用状态信号(
isReplicaValid()
),但然后像与任何其他基于
QObject
的类型一样与对象交互。
用例:GPS¶
考虑一个传感器,例如全球定位系统(GPS)接收器。在QtRO术语中:
用例:打印机访问¶
考虑一个提供打印机访问的服务。在QtRO术语中:
使用模块¶
要包含模块类的定义,请使用以下指令:
import PySide6.QtRemoteObjects
文章和指南¶
班级列表¶
A |
|||||
C |
|||||
Q |
|||||
R |
|||||