在应用程序中添加网页浏览的支持
通过网址 可以找到 Embedded Linux 版本的最新 Qt 源代码。现在最新版本是 4.5.3。
WebKit 作为第三方资源可以在如下目录中找到:
\qt-embedded-Linux-opensource-src-4.5.3\src\3rdparty\WebKit\
Qt 中对 WebKit 做了封装,主要有以下几个类:
QWebView 最常用的类,这是一个窗体控件,可以用来渲染网页
QWebPage 被 QWebView 包含,表示一个 documentQWebFrame 被 QWebPage 包含,表示一个 frameQWebSettings Web 渲染的全局设置 QWebHistory 用于浏览的历史记录
QWebView 是最常用的类,接下来我们大概的介绍一下这个类的组成。
根据头文件定义,我们可以得知这个类与 Qt 中按钮、对话框等一样,都是由 QWidget 派生,可以当做一个通用窗体来使用。
class QWebKit_EXPORT QWebView : public Qwidget
这个类有如下的成员函数:
void load ( const QUrl &url );
void setHtml ( const QString &HTML, const QUrl &baseUrl = QUrl() );
这两个函数可以让 QWebView 加载网页或者显示一段 HTML 内容,是 QWebView 最重要的函数。
这个类还有几个重要的 slot:
void stop ();
void back ();void forward ();void reload ();
这几个函数也是我们平时浏览网页时常用的功能。
QwebView 类还有几个重要的 signal:
Q_SIGNALS:
void loadStarted (); void loadProgress ( int progress ); void loadFinished ( bool );
很明显,这几个 signal 是用来显示网页的加载过程。
接着我们通过代码来看 QWebView 是如何使用的。假设程序有一个主窗体 MainWindow,在 MainWindow 的构造函数中,有如下代码段:
清单 1. MainWindow 构造函数的代码段
QWebView* view = new QWebView ( this ); // 设置窗体左上角的坐标以及长宽 view -> setGeometry( 50 , 50 , 400 , 300 ); view -> show(); view -> load( QUrl("http://www.google.com") );
设备网络配置好之后,运行程序,我们就可以看到在窗体中有一个区域显示出 google 的主页(编译的时候要注意在项目的 pro 文件中包含 WebKit 的头文件路径和动态库)。可见,Qt 已经将 WebKit 做了很好的封装,子应用程序中加入网页浏览功能是非常方便的。