關(guān)于Qt Webkit模塊詳細(xì)介紹
關(guān)于Qt Webkit模塊詳細(xì)介紹是本文要介紹的內(nèi)容,主要是來(lái)學(xué)習(xí)webkit的使用方法,QtWebkit 模塊提供了一個(gè)在Qt中使用web browser的engine,這使得我們?cè)?strong>QT的應(yīng)用程序中使用萬(wàn)維網(wǎng)上的內(nèi)容變得很容易,而且對(duì)其網(wǎng)頁(yè)內(nèi)容的控制也可以通過(guò)native controls 實(shí)現(xiàn)。
QtWebkit具有渲染HTML,XHTML和SVG 文檔, 使用CSS排版,運(yùn)行JavaScript等功能。
在JavaScript 運(yùn)行環(huán)境和Qt object model 直接的橋接技術(shù)使得自定義的QObject 可以在JavaScript代碼中使用。和Qt network module 的整合使得網(wǎng)頁(yè)可以通過(guò)從服務(wù)器,本地文件系統(tǒng),甚至qt的資源系統(tǒng)中下載。
另外為了提供渲染特性,可以使用HTML元素的 contenteditable屬性,使HTML文檔可以被用戶編輯。
QtWebkit是基于開(kāi)源的WebKit engine的。更多信息可以到http://www.webkit.org查看。
為了使用Qtwebkit模塊中的類,我們需要在相關(guān)頭文件中加入 #include <QtWebKit>, 在工程的pro文件中添加 QT += webkit語(yǔ)句。
QtWebkit 高層的架構(gòu):
QWebView 主要用來(lái)查看網(wǎng)頁(yè),一個(gè)QWebView的實(shí)例中有一個(gè)QWebPage.
QWebPage可以訪問(wèn)這個(gè)頁(yè)面的文檔結(jié)構(gòu),它主要描述如Frames,he navigation history, 和編輯內(nèi)容的the undo/redo stack
HTML文檔可以嵌套到一個(gè)frameset中個(gè)frame中。HTML一個(gè)獨(dú)立的 frame是通過(guò)QWebFrame類展示的。這個(gè)類中包含了到JS window object的bridge 和 用于刷新的QPainter。每一個(gè)QWebPage 擁有一個(gè)QWebFrame作為其 main frame,一個(gè)main frame 可以包含多個(gè)child frame。
每一個(gè)的Frame都有一個(gè)自己的JavaScript Context。QWebFrame::addToJavaScriptWindowObject()可以使Qt C++中的object 從JavaScript函數(shù)中訪問(wèn)。 QWebFrame::evaluateJavaScript()可以使用戶在C++代碼中直接運(yùn)行JavaScript代碼。
一個(gè)HTML文檔中獨(dú)立的元素可以通過(guò)在同一個(gè)頁(yè)面中的DOM JavaScript 接口訪問(wèn)。對(duì)應(yīng)的類是QWebElement。可以使用CSS選擇器通過(guò)QWebFrame 's findAllElements() 和 findFirstElement() 函數(shù)獲取QWebElement對(duì)象。
QWebSetting 提供了對(duì)瀏覽器常用的各種屬性,和各種設(shè)置的配置。如:JavaScript enabled, plugin enabled等。通過(guò)其默認(rèn)設(shè)置可以顯示所有QWebPage實(shí)例的默認(rèn)配置。個(gè)別的屬性可以通過(guò)這個(gè)頁(yè)面的setting 來(lái)設(shè)置。全局的Setting使用QWebSetting::globalSettings(), 某個(gè)頁(yè)面的settings 用QWebPage::settings()。
QWebHsitory 主要是用來(lái)存放QWebPage的訪問(wèn)歷史記錄,并且提供對(duì)于導(dǎo)航到相關(guān)頁(yè)面的支持。
QWebHistoryInterface 提供了一個(gè)實(shí)現(xiàn)訪問(wèn)歷史連接的接口。
注意: 僅在桌面系統(tǒng)中提供 對(duì)Netscape plugin 的支持。
自從WebKit支持 Netscape Plugin API, qt的應(yīng)用程序可以顯示當(dāng)前平臺(tái)上可用的常見(jiàn)plugin。為了使plugin的支持性可用,用戶必須安裝對(duì)應(yīng)的plugin,并且當(dāng)前應(yīng)用程序的QWebSetting::PluginEnabled 設(shè)置為可用。
QNetworkAccessManager 是一個(gè)可以發(fā)送和接收數(shù)據(jù)的異步API。它可以看做是post/put/get/head API。它也提供了對(duì)cookie和session的支持。
小結(jié):關(guān)于Qt Webkit模塊詳細(xì)介紹的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!