把 QObject 暴露給遠程 HTML 客戶端。 更多...
| 頭: | #include <QWebChannel> |
| qmake: | QT += webchannel |
| Since: | Qt 5.4 |
| 繼承: | QObject |
該類在 Qt 5.4 引入。
| QWebChannel (QObject * parent = Q_NULLPTR) | |
| virtual | ~QWebChannel () |
| bool | blockUpdates () const |
| void | deregisterObject (QObject * object ) |
| void | registerObject (const QString & id , QObject * object ) |
| void | registerObjects (const QHash<QString, QObject *> & 對象 ) |
| QHash<QString, QObject *> | registeredObjects () const |
| void | setBlockUpdates (bool block ) |
| void | connectTo (QWebChannelAbstractTransport * transport ) |
| void | disconnectFrom (QWebChannelAbstractTransport * transport ) |
| void | blockUpdatesChanged (bool block ) |
QWebChannel 填充 C++ 應用程序和 HTML/JavaScript 應用程序之間的間隙。通過發布 QObject 派生對象給 QWebChannel 並使用 qwebchannel.js on the HTML side, one can transparently access properties and public slots and methods of the QObject 。不需要手動傳遞消息和序列化數據,在 C++ 側的特性更新和信號發齣,會被自動傳輸到潛在的遠程運行 HTML 客戶端。在客戶端側,JavaScript 對象將被創建,為任何已發布 C++ QObject 。它鏡像 C++ 對象的 API,因此,是直觀可用的。
C++ QWebChannel API 使與任何 HTML 客戶端對話成為可能,這些客戶端可以運行在本地 (甚至遠程機器上)。唯一的限製是 HTML 客戶端要支持 JavaScript 特徵,要求使用
qwebchannel.js
。因此,基本上可以與任何現代 HTML 瀏覽器或獨立 JavaScript 運行時 (如 node.js) 交互。
還存在聲明式 WebChannel API .
另請參閱 Qt WebChannel 獨立範例 and JavaScript API .
當設為 true 時,更新被阻塞,且不會通知遠程客戶端有關特性的更改。
改變被記錄並被發送給客戶端,一旦更新再次變為不阻塞,通過把此特性設為 false。默認情況下,更新不被阻塞。
訪問函數:
| bool | blockUpdates () const |
| void | setBlockUpdates (bool block ) |
通知程序信號:
| void | blockUpdatesChanged (bool block ) |
構造 QWebChannel 對象采用給定 parent .
注意:QWebChannel 纔完整可操作,一旦把它連接到
QWebChannelAbstractTransport
。HTML 客戶端還需進行適當設置使用
qwebchannel.js
.
[slot]
void
QWebChannel::
connectTo
(
QWebChannelAbstractTransport
*
transport
)
連接 QWebChannel 到給定 transport 對象。
然後,傳輸對象處理 C++ 應用程序和遠程 HTML 客戶端之間的通信。
另請參閱 QWebChannelAbstractTransport and QWebChannel::disconnectFrom ().
[slot]
void
QWebChannel::
disconnectFrom
(
QWebChannelAbstractTransport
*
transport
)
斷開連接 QWebChannel 從 transport 對象。
另請參閱 QWebChannel::connectTo ().
[虛擬]
QWebChannel::
~QWebChannel
()
銷毀 QWebChannel .
撤銷注冊給定 object 從 QWebChannel .
遠程客戶端會接收
destroyed
信號對於給定對象。
注意: 此函數可以被援引,通過元對象係統和從 QML。見 Q_INVOKABLE .
另請參閱 QWebChannel::registerObjects (), QWebChannel::registerObject (),和 QWebChannel::registeredObjects ().
把單個對象注冊到 QWebChannel .
The properties, signals and public methods of the object are published to the remote clients. There, an object with the identifier id 然後被構造。
注意: 當前的限製是對象被注冊,在任何客戶端被初始化之前。
注意: 此函數可以被援引,通過元對象係統和從 QML。見 Q_INVOKABLE .
另請參閱 QWebChannel::registerObjects (), QWebChannel::deregisterObject (),和 QWebChannel::registeredObjects ().
把對象組注冊到 QWebChannel .
對象的特性、信號及公共可援引方法被發布到遠程客戶端。在那裏,對象采用標識符用作為鍵在 對象 映射然後被構造。
注意: 當前的限製是對象被注冊,在任何客戶端被初始化之前。
另請參閱 QWebChannel::registerObject (), QWebChannel::deregisterObject (),和 QWebChannel::registeredObjects ().
返迴被發布到遠程客戶端的注冊對象的映射。
另請參閱 QWebChannel::registerObjects (), QWebChannel::registerObject (),和 QWebChannel::deregisterObject ().