| 0 意見 ]

http://www.thisisqt.com/forum/viewthread.php?tid=184&page=1&extra=#pid377



QWebView类提供了一个可以展现和编辑网页文档的widget。

QWebView是QtWebKit网页浏览模块的一个主要widget组件,可以用它来展现互联网网页。

下图展现了一个在Qt Designer中创建的一个QWebView,它展现的是诺基亚的官网:



可以使用QWebView的load()方法来加载一个网站,这里和其他的所有Qt的widget一样,你需要调用show()方法才会显示出QWebView。

如下例所示:

01. QWebView *view = new QWebView(parent);



02. view->load(QUrl("http://qt.nokia.com/"));



03. view->show();

复制代码另外setUrl()方法也可以用来加载一个网站,而如果你有现成的HTML文件,则可以直接调用setHtml()方法来加载。

当网页开始加载时会发出loadStarted()的信号,当网页中任何一个元素被加载完都会发出loadProgress()信号,例如一个图片,或是一段脚本。最后当网页全部加载完成后会发出loadFinished()信号,其中loadFinished()信号携带的参数会说明加载是否成功,如果参数为真则加载成功,否则加载失败。



page()方法返回一个指向QWebPage网页对象的指针,在下面我们会讲到QWebPage和QWebView之间的关系。

你可以通过QWebView的settings()方法获得QWebSettings对象,进而可以对网页做相关设置,比如修改默认的字体,开启或禁止JavaScript和插件等。

通过QWebView的title()方法,我们可以访问到一个HTML文档的标题,即这个网页的标题。另外,一个网站可能会有站标(就是这个网站的标志,是一个小图标),这时我们可以通过icon()属性来获得站标。如果网站标题或是站标变了,相应的titleChanged() 或是iconChanged()信号会被发送。可以通过textSizeMultiplier()属性来改变QWebView中打开所有网页的文字大小。



如果你需要定制上下文菜单,你可以通过重新实现contextMenuEvent()方法,然后使用pageAction()返回的QAction来构建你的QMenu菜单。

其他功能像重新加载网页,拷贝选择的文字到剪切板以及粘贴到网页,也都可以通过传递给pageAction()方法相应的参数来获得相应的QAction对象。

这些QAction对象可以通过triggerPageAction()方法来触发,另外这些QAction对象也可以被直接加到工具条或是菜单中。QWebView维护这些QAction对象的状态,但也允许修改它们的一些属性,例如文字,图标icon等。



一个QWebView对象可以使用QPrinter的print()方法来实现打印输出,这个方法是一个槽,可以很容易连接到QPrintPreviewDialog的paintRequested()信号上。

为了对网站提供更多的支持,可能你会想允许用户打开新的窗口,例如弹出窗口,这时你可以通过继承QWebView,然后重新实现createWindow()方法即可。



QWebView的元素

QWebView对象由多个对象组成,比如QWebFrame对象和QWebPage对象,下图说明了这些对象之间的关系:



注意:如果不需要QWidget的一些属性,这里可以直接使用QWebPage和QWebFrame,不是说一定要有QWebView才可以。由于QtWebKit依赖于QtGui模块,所以构建程序时应该使用QApplication而不是QCoreApplication。



QWebView继承自QWidget



属性说明



icon : const QIcon

This property holds the icon associated with the web page currently viewed.

这个属性是当前浏览网页的站标,默认情况下,此属性是一个空的图标。

访问方法如下:

01.QIcon icon () const

复制代码跟icon属性相关的还有iconChanged() 和QWebSettings::iconForUrl()。



modified : const bool

这个属性用来表明网页文档是否被用户修改过。

HTML文档的部分内容可以被修改,例如可以通过HTML组成元素的可编辑的属性来修改。

此属性默认值为假。

访问方法如下:

01.bool isModified () const

复制代码renderHints : QPainter::RenderHints

这个属性表明默认网页视图的渲染方式,比如是否抗锯齿等等

此属性可用来在绘制网页前初始化QPainter。

此属性默认值为QPainter::TextAntialiasing



注意:此属性在Symbian上不可用,但其getter和setter方法依然可以直接使用。

这个属性是Qt 4.6才引入的。

访问方法如下:

01.QPainter::RenderHints renderHints () const



02.void setRenderHints ( QPainter::RenderHints hints )

复制代码跟此属性相关的还有QPainter::renderHints().



selectedText : const QString

此属性是当前选择的文字。

默认情况下,此属性为空字符串。



访问方法:

01.QString selectedText () const

复制代码跟此属性相关的还有 findText() 和selectionChanged()。



title : const QString

此属性是当前浏览网页的标题。

默认值为空字符串。

访问方法:

01.QString title () const

复制代码跟此属性相关的还有titleChanged()。



url : QUrl

此属性是当前浏览的网址。

给此属性设置新值后会导致加载新的网址。

此属性默认值为空的,无效的网址。

访问方法:

01.QUrl url () const



02.void setUrl ( const QUrl & url )

复制代码跟此属性相关的还有load() 和 urlChanged()。



zoomFactor : qreal

此属性表明视图放大比例

此属性是Qt 4.5引入的。

访问方法有:

0 意見

張貼留言