Qt项目(7)Qt实现网页浏览器

   日期:2024-12-25    作者:dgkangbaojiancai 移动:http://oml01z.riyuangf.com/mobile/quote/14879.html

本文要实现的功能有,浏览器导航栏,包括"前进"、“后退”、”刷新“;可实时刷新界面title和图标;可以查看历史记录,设置主页,查看网页源代码;可实现网页的缩放;实时显示网页加载进度;可以进行超链接跳转。功能之间相对独立,没有复杂的逻辑关系,代码梳理的应该比较明晰了,下面按照顺序介绍开发步骤,并介绍一些注意事项,附上源码工程。

Qt4使用QWebView实现浏览器相关的功能,看网上都说Bug很多,到了Qt5.5,使用QWebEngine模块及其中的类代替QWebView实现浏览器的功能,官方介绍,内部技术修改了,总之现在比较稳定了。
QtWebEngine模块提供了一个Web浏览器引擎,可以方便地在没有本地Web引擎的平台上将来自万维网的内容嵌入到Qt应用程序中。比起以前的Qt Webkit提供了更好的支持。Qt WebEngine本身是一个非常庞大的项目,涉及了HTML、CSS、JavaScript等多方面的知识,Qt对于Qt Webegine的支持是在逐渐加强的。但就目前来说,一个网页浏览器的基本功能是全部支持的,包括了网页显示,导航菜单,显示网站图标,提供历史记录以及字符串查找功能。

 

并在.h中添加头文件即可使用。

 

4.由于每台主机的自身配置不同,可能会对qt程序产生影响。按照如下代码
可以实现显示一个网页的功能。

.h文件

 

.cpp文件

 
 
 
 

当用户点击历史记录项的时候,应该使用listwidget方法确定当前行,配合history()->goToItem(item);方法转到单击的页面。
10.响应超链接
以上0-9步骤完成之后你会发现,界面是无法响应超链接的,当鼠标放在超链上是有部件的状态变化,可是点击却没有反应。有反应说明Qt已经获取到了这个点击信息,不需要你再去根据鼠标位置单击事件做解析。那他的机制是,当你点击超链接,或者运行JavaScript、或其他会弹出界面的操作时,他会去调用虚函数,creatwindow,但默认这个函数中没有内容,因此需要在继承自QWebEngineView的子类中重写。例如在该函数中打印某信息,当你点击超链或者查看源代码时,控制台会打印这句话。在该函数中直接返回this,将实现超链的响应,即网页的跳转。当然该函数提供了一个参数,这个参数是网页传递的,即QWebEnginePage::WebWindowType type,查看帮助可知该枚举类型有四类,可以在重写的creatWindow中根据不同的type执行不同的操作。

以上步骤介绍比较详细了,当然有一些必要的判断操作,提示操作以及错误判断未提及,这是比较容易的。稍后贴出代码。

 
 
 
 

其中注释中序号与”步骤“相对应。

 
 

自定义的继承自QWebEngineView的子类,为了重写creatwindow函数以实现网页跳转。

 
 
 
 
  • 🎄我的主页
  • 🎄【QT实战】汇总导航
  • 🎄上一篇:Qt项目(6)Qt实现天气预报
  • 🎄下一篇:Qt项目(8)Qt实现音乐播放器
END


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号