QtWebkit模組介紹

來源:互聯網
上載者:User

QtWebkit 模組提供了一個在Qt中使用web browser的engine,這使得我們在qt的應用程式中使用全球資訊網上的內容變得很容易, 而且對其網頁內容的控制也可以通過native controls 實現。

QtWebkit 具有渲染HTML,XHTML和SVG 文檔, 使用CSS排版,運行JavaScript等功能。

在JavaScript 運行環境和Qt object model 直接的橋接技術使得自訂的QObject 可以在JavaScript代碼中使用。和Qt network module 的整合使得網頁可以通過從伺服器,本地檔案系統,甚至qt的資源系統中下載。

另外為了提供渲染特性,可以使用HTML元素的
contenteditable屬性,使HTML文檔可以被使用者編輯。


QtWebkit是基於開源的WebKit engine的。更多資訊可以到http://www.webkit.org查看。


為了使用Qtwebkit模組中的類,我們需要在相關標頭檔中加入

#include <QtWebKit>, 在工程的pro檔案中添加 QT += webkit語句。

 

QtWebkit 高層的架構:

 

 


 

 

 

QWebView 主要用來查看網頁,一個QWebView的執行個體中有一個QWebPage.

QWebPage可以訪問這個頁面的文檔結構,它主要描述如Frames,he navigation history, 和編輯內容的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函數中訪問。 QWebFrame::evaluateJavaScript()可以使使用者在C++代碼中直接運行JavaScript代碼。


一個HTML文檔中獨立的元素可以通過在同一個頁面中的DOM JavaScript 介面訪問。對應的類是QWebElement。可以使用CSS選取器通過QWebFrame
's 
findAllElements()

和
findFirstElement()

函數擷取QWebElement對象。


QWebSetting 提供了對瀏覽器常用的各種屬性,和各種設定的配置。如:JavaScript enabled, plugin enabled等。通過其預設設定可以顯示所有QWebPage執行個體的預設配置。個別的屬性可以通過這個頁面的setting

來設定。全域的Setting使用QWebSetting::globalSettings(), 某個頁面的settings 用QWebPage::settings()。



QWebHsitory 主要是用來存放QWebPage的訪問記錄,並且提供對於導航到相關頁面的支援。

QWebHistoryInterface 提供了一個實現訪問曆史串連的介面。




注意:

僅在案頭系統中提供

對Netscape plugin 的支援。

自從WebKit支援

Netscape Plugin API, qt的應用程式可以顯示當前平台上可用的常見plugin。為了使plugin的支援性可用,使用者必須安裝對應的plugin,並且當前應用程式的QWebSetting::PluginEnabled 設定為可用。



QNetworkAccessManager 是一個可以發送和接收資料的非同步API。它可以看做是post/put/get/head API。它也提供了對cookie和session的支援。




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.