QWebView和QWebEngineView之间有任何功能性差异吗?如果我理解正确,QWebView是webkit,而QWebEngineView是blink。对程序员来说有什么不同吗?是否有一个比另一个提供更多外观自定义选项?
QWebView和QWebEngineView之间有任何功能性差异吗?如果我理解正确,QWebView是webkit,而QWebEngineView是blink。对程序员来说有什么不同吗?是否有一个比另一个提供更多外观自定义选项?
我建议你尝试一下QtWebEngine,毕竟它正在替换QtWebKit。
如果你可以控制HTML的呈现,那么使用QWebKit可能没有什么坏处。只是确保在页面发布前进行测试。
QWebView使用WebKit作为后端。
http://doc.qt.io/qt-5/qwebview.html#details
QWebEngineView使用Chromium作为后端。
http://doc.qt.io/qt-5/qwebengineview.html#details
WebKit是Linux中Konqueror和Rekonq使用的引擎。它不错,但在我看来,在一般(经常不完美)的网页/HTML上不太健壮。
Chromium是一个更新、更快速、更健壮的引擎。
我不知道所有具体的技术细节,但QWebEngine是向正确方向迈出的一大步。这主要来自于我自己的实验和实证使用。
要好好尝试一下WebKit,请查看此项目并尝试各种页面:
https://github.com/magist3r/QtWeb
以下是有关QtWebEngine和QtWebKit的更多信息:
框架:WebKit vs WebEngine
自2007年以来,Qt WebKit一直存在,直到版本3。根据这篇Qt博客和这里的描述,它被新的基于Chromium的Web引擎所取代,即Qt WebEngine。根据链接中的说明,Qt WebKit目前工作正常,并将在未来几年继续如此,但如果您想为应用程序或设备提供所有最新和最伟大的HTML5功能,则应考虑切换到Qt WebEngine。
正如这篇博客所说:Qt 5.4仍然包含较旧的Qt WebKit模块。Qt WebKit仍然受支持,但是从Qt 5.4开始,我们认为它已经完成了,因此不会向其中添加任何新功能。我们还计划在未来的发布中废弃Qt WebKit,因为新的Qt WebEngine提供了所需的功能。
我的决定:我更喜欢使用最新的QtWebEngine,特别是在初始阶段。如果遇到问题,可能会回退到Qt WebKit。
QML:WebView vs WebEngineView。
在QML中拥有一个浏览器项,有两个选项:WebView和WebEngineView。
WebView具有相同的名称,在WebKit和WebEngine中都有定义。WebKit中WebView的文档在这里。它应该导入QtWebKit 3.0。
为了使用绑定到WebEngine的WebView,我们需要这个导入:import QtWebView 1.0。但是我们很可能会遇到错误#5和#6,解决方案在链接中说明。
我将使用后者的WebView,即由WebEngine提供的WebView。证明它与WebEngnie相关的是错误#5和#6的调试解决方案。从现在开始,在本文档中,WebView指的是WebEngine提供的那个。
正如这篇博客所说:在Qt 5.4中,提供了Qt WebView,它提供了一个更有限的API来嵌入底层操作系统的本机Web浏览器,用于不需要完整的Qt WebEngine或由于来自底层操作系统的限制而无法使用它的用例。在Qt 5.4中,Qt WebView模块支持iOS和Android。它支持将底层操作系统的本机Web引擎嵌入到Qt中,并且目前可用于Android和iOS。因此,Qt WebView还为简单的Web文档集成提供了便捷的轻量级解决方案。
WebEngineView允许QML应用程序呈现动态Web内容的区域。WebEngineView组件可以与其他QML组件共享屏幕,也可以根据QML应用程序中指定的方式覆盖整个屏幕。在不执行iOS和Android的应用程序中,这是我的选择。
注意:根据这篇博客,QtWebView将在可能的情况下回退到使用QtWebEngine。与此同时,他们正在使更多平台可以使用WebView。作为对QT-Bug的回复,也提到:虽然我们没有针对OS X、Windows等的本机WebView实现,但我们可以回退使用QtWebEngine。
我的决定:在非安卓和iOS应用程序中使用WebEngineView。