Qt | 实现基于 Qt WebEngine Widgets 的网页浏览器
前言:
Qt WebEngine 模块提供了一个 Web 浏览器引擎,可以很容易地将万维网中的内容嵌入到 Qt 应用程序中。因为 Qt WebEngine 模块是基于 Google Chromium 项目的,Chromium 现在并不支持 MinGW 进行构建,在 Windows 平台上需要使用 MSVC 2013 以上版本进行构建。
Qt WebEngine 基于 Chromium,但是其中并没有包含或使用 Google Chrome 浏览器提供的服务或者加载项。
Qt WebEngine 架构:
Qt WebEngine 中的功能被划分到 3 个不同的模块:
Qt WebEngine Widgets 模块,用来创建基于 C++ Widgets 部件的 Web 程序;
Qt WebEngine 模块,用来创建基于 Qt Quick 的 Web 程序;
Qt WebEngine Core 模块,用来与 Chromium 交互。
基于 Qt WebEngine Widgets 的网页浏览器:
使用 Qt WebEngine Widgets 模块,需要在.pro 文件中添加“QT += webenginewidgets”。
显示一个网页:
创建了一个 QWebEngineView 视图部件,用于显示网页内容;
调用 load() 函数加载要显示的网站地址;setUrl() 也可以用于加载网站,如果是现成的 HTML 文档,则可以使用 setHtml() 函数来加载。
setCentralWidget() 将视图部件设置为主窗口的中心部件;
添加导航动作图标和地址栏:
当 QWebEngineView 开始加载时,会发射 loadStarted() 信号;
每当一个网页元素(例如一张图片或一个脚本等)加载完成时,都会发射 loadProgress() 信号,如果加载成功,该信号参数为 true,否则为 false;
可以使用 title()函数来获取 HTML 文档的标题,如果标题发生了改变,则会发射 titleChanged() 信号;
QWebEnginePage 中通过枚举类型 QWebEnginePage::WebAction 定义了几十个常用的功能动作,比如前进、后退等,可以在帮助文档中进行查看。
版权声明: 本文为 InfoQ 作者【YOLO.】的原创文章。
原文链接:【http://xie.infoq.cn/article/acd37976b74cc94c2134f4fcc】。未经作者许可,禁止转载。
评论