一.首先,让我们展示一幅QWebView的网页效果图:
想要实现上面的效果很简单,你只需要完成三个步骤
1.建立一个QWebView对象,QWebView *view = new QWebView(parent);其中parent为父类.如果想要QWebView为top window,可以设置parent = 02.调用load或setUrl方法设置要显示的网页.注意网页的格式以http://开头3.调用show方法显示QWebView 完整的代码为:QWebView *view = new QWebView(parent); //步骤1view->load(QUrl(" http://qtsoftware.com/")); //步骤2view->show(); //步骤3 二.QWebView除了用load方法设定网页路径外,也可以使用setHtml方法加载html格式的网页,这里我们以加载google地图插件为例.最后的效果图为:
1.第一步,我们通过google地图获取插件的代码。进入google地图页面,点击链接,获取代码
2.获取到得代码为:<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="
[url]http://ditu.google.cn/maps?hl=zh-CN&q=%E5%9C%B0%E5%9B%BE&ie=UTF8&brcurrent=3,0x31508e64e5c642c1:0x951daa7c349f366f,0%3B5,0,0&ll=38.005263,115.357367&spn=15.390188,22.535491&output=embed"></iframe><br[/url] /><small><a href=" http://ditu.google.cn/maps?hl=zh-CN&q=%E5%9C%B0%E5%9B%BE&ie=UTF8&brcurrent=3,0x31508e64e5c642c1:0x951daa7c349f366f,0%3B5,0,0&ll=38.005263,115.357367&spn=15.390188,22.535491&source=embed" style="color:#0000FF;text-align:left">查看大图</a></small>
我们可以删去br、small和a标记,最后在代码前后添加<html></html>标记
将文件保存为*.html(注:删除的部分为屏蔽google地图的右键效果,可以保留)
3.调用QWebView的setHtml方法设定上述文件的路径,然后用show方法显示google地图
关于QWebView的信号与槽,下面列出:
Public Slots
・ void back ()
・ void forward ()
・ void print ( QPrinter * printer ) const
・ void reload ()
・ void stop ()
・ 19 public slots inherited from QWidget
・ 1 public slot inherited from QObject
Signals
・ void iconChanged ()
・ void linkClicked ( const QUrl & url )
・ void loadFinished ( bool ok )
・ void loadProgress ( int progress )
・ void loadStarted ()
・ void selectionChanged ()
・ void statusBarMessage ( const QString & text )
・ void titleChanged ( const QString & title )
・ void urlChanged ( const QUrl & url )
・ 1 signal inherited from QWidget
・ 1 signal inherited from QObject
1.loadStarted、loadFinished和loadProgress信号介绍
loadStarted信号当有新的web page请求时发出。而我们关注更多的是loadProgress信号。loadProgress信号在load web page的一个元素成功时发出。这里的元素指代image、text、script对象。loadProgress的value表明了网页load的进度,范围从0-100。我们可以看出,QWebView封装了获得load进度值的计算方法。我们可以连接信号,对进度条赋值connect(webView, SIGNAL(loadProgress(int)), SLOT(setProgress(int)));其中setProgress方法需要自己定义。loadFinished信号在web page load完成后发送。
2.iconChanged、selectionChanged、titleChanged和urlChanged信号介绍
当web page显示网页的icon、selected text、title或url改变时发送
3.back、forward、reload、print、stop槽介绍
back、forward对应QWebPage的后退与前进操作,相当于webView->page()->triggerPageAction(QWebPage::Back);和webView->page()->triggerPageAction(QWebPage::Forward);其中QWebView通过调用page方法返回current page. QWebPage::Back和QWebPage::Forward在QWebPage::WebAction中定义 Reload与stop槽为重载与停止load web page Print槽用于将main frame通过QPrinter paints出来。这里可以更进一步了解QWebView、QWebPage与QWebFrame三者的层次结构
4.linkClicked与statusBarMessage信号
首先,linkClicked信号能够发送的前提是对应的QWebPage::linkDelegationPolicy被设定为允许链接而statusBarMessage信号发生在status text改变时