详解Qt Webkit模块应用学习笔记

移动开发
Qt Webkit模块详细介绍是本文要介绍的内容,主要是来了解并学习Qt Webkit应用,Qt Webkit具有渲染HTML,XHTML和SVG文档,使用CSS排版,运行JavaScript等功能。

Qt Webkit模块详细介绍是本文要介绍的内容,Qt Webkit模块提供了一个在Qt中使用webbrowser的engine,这使得我们在qt的应用程序中使用万维网上的内容变得很容易,而且对其网页内容的控制也可以通过nativecontrols实现。

Qt Webkit具有渲染HTML,XHTML和SVG文档,使用CSS排版,运行JavaScript等功能。

在JavaScript运行环境和Qtobjectmodel直接的桥接技术使得自定义的QObject可以在JavaScript代码中使用。和Qtnetworkmodule的整合使得网页可以通过从服务器,本地文件系统,甚至qt的资源系统中下载。

另外为了提供渲染特性,可以使用HTML元素的contenteditable属性,使HTML文档可以被用户编辑。

QtWebkit是基于开源的WebKitengine的。更多信息可以到http://www.webkit.org查看。

为了使用Qtwebkit模块中的类,我们需要在相关头文件中加入#include,在工程的pro文件中添加QT+=webkit语句。

Qt Webkit高层的架构:

QWebView主要用来查看网页,一个QWebView的实例中有一个QWebPage.

QWebPage可以访问这个页面的文档结构,它主要描述如Frames,henavigationhistory,和编辑内容的theundo/redostack

HTML文档可以嵌套到一个frameset中个frame中。HTML一个独立的frame是通过QWebFrame类展示的。这个类中包含了到JSwindowobject的bridge和用于刷新的QPainter。每一个QWebPage拥有一个QWebFrame作为其mainframe,一个mainframe可以包含多个childframe。每一个的Frame都有一个自己的JavaScriptContext。QWebFrame::addToJavaScriptWindowObject()可以使QtC++中的object从JavaScript函数中访问。QWebFrame::evaluateJavaScript()可以使用户在C++代码中直接运行JavaScript代码。

一个HTML文档中独立的元素可以通过在同一个页面中的DOMJavaScript接口访问。对应的类是QWebElement。可以使用CSS选择器通过QWebFrame'sfindAllElements()和findFirstElement()函数获取QWebElement对象。

QWebSetting提供了对浏览器常用的各种属性,和各种设置的配置。如:JavaScriptenabled,pluginenabled等。通过其默认设置可以显示所有QWebPage实例的默认配置。个别的属性可以通过这个页面的setting来设置。全局的Setting使用QWebSetting::globalSettings(),某个页面的settings用QWebPage::settings()。

QWebHsitory主要是用来存放QWebPage的访问历史记录,并且提供对于导航到相关页面的支持。

QWebHistoryInterface提供了一个实现访问历史连接的接口。

注意:仅在桌面系统中提供对Netscapeplugin的支持。

自从WebKit支持NetscapePluginAPI,qt的应用程序可以显示当前平台上可用的常见plugin。为了使plugin的支持性可用,用户必须安装对应的plugin,并且当前应用程序的QWebSetting::PluginEnabled设置为可用。

QNetworkAccessManager是一个可以发送和接收数据的异步API。它可以看做是post/put/get/headAPI。它也提供了对cookie和session的支持。

小结:

Qt Webkit模块介绍的内容介绍完了,希望通过Qt Webkit内容的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-29 10:01:27

QTWebkit插件

2011-06-14 11:48:38

Webkit QT

2011-08-29 10:22:48

QtWebkit 模块HTML文档

2011-09-01 14:04:45

QT Webkit插件

2011-09-07 16:36:00

Qt Widget

2011-09-07 16:28:46

QT WidgetQWidget

2011-09-01 15:22:16

Qt WebKitWebKit

2011-09-09 15:51:58

Android Web应用

2021-02-05 11:55:37

PythonWindows平台代码

2011-10-13 14:26:12

Qt WebKitWebKit

2011-08-29 10:59:47

QtWebkit嵌入式

2011-06-17 09:58:26

Qt Chapter QObject

2011-06-17 10:19:11

Qt QWidge QSetting

2011-09-09 16:23:16

Android Web测试

2011-08-29 11:25:29

QTWebKit鼠标

2011-08-29 14:27:33

QTWebkit浏览器

2010-07-19 09:08:38

Perl模块

2011-08-29 14:10:03

QtWebkitFlash

2011-09-09 18:43:13

Qt Webkit浏览器

2011-06-22 11:09:01

QT 菜单 多线程
点赞
收藏

51CTO技术栈公众号