把 QObject 暴露給遠程 HTML 客戶端。 更多...
| 頭: | #include <QWebChannel> |
| qmake: | QT += webchannel |
| Since: | Qt 5.4 |
| 繼承: | QObject |
| QWebChannel (QObject * parent = Q_NULLPTR) | |
| ~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 ) |
把 QObject 暴露給遠程 HTML 客戶端。
The QWebChannel fills the gap between C++ applications and HTML/JavaScript applications. By publishing a QObject derived object to a QWebChannel and using the 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 makes it possible to talk to any HTML client, which could run on a local or even remote machine. The only limitation is that the HTML client supports the JavaScript features used by
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
is only fully operational once you connect it to a
QWebChannelAbstractTransport
。HTML 客戶端還需進行適當設置使用
qwebchannel.js
.
銷毀 QWebChannel .
[slot]
void
QWebChannel::
connectTo
(
QWebChannelAbstractTransport
*
transport
)
連接 QWebChannel 到給定 transport 對象。
然後,傳輸對象處理 C++ 應用程序和遠程 HTML 客戶端之間的通信。
另請參閱 QWebChannelAbstractTransport and QWebChannel::disconnectFrom ().
撤銷注冊給定 object 從 QWebChannel .
遠程客戶端會接收
destroyed
信號對於給定對象。
另請參閱 QWebChannel::registerObjects (), QWebChannel::registerObject (),和 QWebChannel::registeredObjects ().
[slot]
void
QWebChannel::
disconnectFrom
(
QWebChannelAbstractTransport
*
transport
)
斷開連接 QWebChannel 從 transport 對象。
另請參閱 QWebChannel::connectTo ().
把單個對象注冊到 QWebChannel .
The properties, signals and public methods of the object are published to the remote clients. There, an object with the identifier id 然後被構造。
注意: 當前的限製是對象被注冊,在任何客戶端被初始化之前。
另請參閱 QWebChannel::registerObjects (), QWebChannel::deregisterObject (),和 QWebChannel::registeredObjects ().
把對象組注冊到 QWebChannel .
對象的特性、信號及公共可援引方法被發布到遠程客戶端。在那裏,對象采用標識符用作為鍵在 對象 映射然後被構造。
注意: 當前的限製是對象被注冊,在任何客戶端被初始化之前。
另請參閱 QWebChannel::registerObject (), QWebChannel::deregisterObject (),和 QWebChannel::registeredObjects ().
返迴被發布到遠程客戶端的注冊對象的映射。
另請參閱 QWebChannel::registerObjects (), QWebChannel::registerObject (),和 QWebChannel::deregisterObject ().