将QWebkit 转化到 Qt 5.8下使用QWebEngine

来源:互联网 发布:网络成瘾症心理干预 编辑:程序博客网 时间:2024/06/01 10:13

(1)QWebkit与QWebEngine

版本发展: QWebkit 5.5之前浏览器开发使用的QWebkit;Qt 5.5同时支持QWebkit 和QWebEngine;Qt 5.6之后不再支持QWebkit,只支持QWebEngine。

区别:QWebkit基于Webkit内核;QWebEngine基于chrome内核,功能更加完善。

我开发的浏览器之所以要将之前的QWebkit替换为QWebEngine,是因为想要找到一个更稳定的浏览器内核;

而且我开发的浏览器需要调用电脑中安装插件软件,在QWebkiit下使用的方法是:使用dumpcpp制作该插件的QActive类的库文件;新建QWidget来包裹这个QActiveX类,并重新实现其中的槽函数;再使用QWebPage::createPlugin()函数创建自定义浏览器插件来调用这个新建的QWidget。  可以实现插件的调用,但是会出现图层问题,也就是调用的插件会一直在网页图层的顶层且无法改变。 这个问题,使用QRegion::setMask可以勉强解决。    这种方法比较麻烦,而且需要网页的js文件配合修改,比较麻烦。


QWebEngine使用chrome内核,调用本地插件的时候,可以直接调用ppapi插件。


(2)QT 5.8下使用QWebEngine

要注意QT 5.8下使用QWebEngine,在windows环境下必须是Qt 5.8 msvc2015,而且必须安装Visual Studio 2015 和 Windows 10 SDK。

Qt5.8下使用QWebEngine要求的环境:   http://doc.qt.io/qt-5/qtwebengine-platform-notes.html


(3)QWebEngine开发环境的搭建参考下面链接

Qt 5.8.0使用QtWebEngine的windows环境搭建