Qt 與 Html 通訊 之 QWebChannel
阿新 • • 發佈:2018-12-30
required
Header | #include |
---|---|
qmake: | QT += webchannel |
Since: | Qt 5.4 |
Inherits: | QObject |
簡介
QWebChannel 類的作用是向遠端Html客戶端暴露 QObject。
QWebChannel 填補了c++應用程式和 HTML/JavaScript 應用程式之間的空白。通過將QObject派生物件釋出到QWebChannel並在html中引入 qwebchannel.js指令碼可從此處獲取。在HTML端,可以透明地訪問QObject的屬性、公共槽和方法。不需要手動訊息傳遞和資料序列化,c++方面的屬性更新和訊號發射將自動傳輸到可能遠端執行的HTML客戶機。在客戶端,將為任何釋出的c++ QObject建立JavaScript物件。它反映了c++物件的API,因此可以直觀地使用。
成員函式
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 *> &objects) |
QHash<QString, QObject *> | registeredObjects() const |
void | setBlockUpdates(bool block) |
- registerObject 函式可以向 html 中註冊 QObject 物件,可以指定物件 ID
- blockUpdates 函式 和 setBlockUpdates 分別用來 獲取和 設定 物件更新的阻塞標誌。當設定為true時,更新將被阻塞,遠端客戶端將不會收到有關屬性更改的通知。
更新將被記錄下來,通過將此屬性設定為false解除阻塞將記錄傳送到客戶機。預設情況下,更新不會被阻止。