嵌入式 linux 智能设备应用中 web 支持的实现,第(2)

在应用程序中添加网页浏览的支持

通过网址 可以找到 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 做了很好的封装,子应用程序中加入网页浏览功能是非常方便的。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/27494.html