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