Qt Remote Objects (QtRO) 是為 Qt 開發的 IPC (進程間通信) 模塊。想法是擴展現有 Qt 功能,以在進程 (或計算機) 之間輕鬆交換信息。
Qt 實現這的關鍵特徵之一是區彆對象 API (由它的 Q_Property、Signals 和 Slots 定義) 同該 API 的實現。QtRO 的目的是滿足期望 API,即使真實 QObject is in a different process. A Slot called on a copy of an object (called a 復本 在 QtRO) 會被轉發給真實對象 (稱為 Source 在 QtRO) 進行處理。更新 Source (特性更改或發射信號) 會被轉發給各 復本 .
A 復本 是輕量級代理對於 Source object, but one that supports the same connections and behavior of QObjects, which makes them as easy to use as any other QObject 由 QT 提供。一切都需要 復本 看起來像 Source 對象由 QtRO 在幕後處理。
注意,遠程對象的行為異於傳統 RPC (遠程過程調用) 實現。在 RPC,客戶端發齣請求並等待響應。在 RPC,服務器不會嚮客戶端推送任何東西,除非是響應請求。RPC 的設計是經常使不同客戶端彼此獨立 (例如:2 個客戶端可以嚮映射服務詢問方嚮並獲得不同結果)。雖然可能以 QtRO 實現這 (如 Source without properties, and Slots that have return values), it is designed more to hide the fact that the processing is really remote. You let a node give you the 復本 而不是自己創建,可以使用狀態信號 ( isReplicaValid() ),然後與對象交互就像采用任何其它 QObject 基類型。
要啓用 Qt Remote Objects 在工程中,添加此指令到 C++ 文件:
#include <QtRemoteObjects>
要鏈接到 Qt Remote Objects 模塊,添加此行到工程文件:
QT += remoteobjects