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引入的。
访问方法有:
[晚上11:24
|
0
意見
]
0 意見
張貼留言