QWebView 或 QWebEngineView

QWebView or QWebEngineView

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 和 Rekonq 上的 Konqueror 中使用的。它还不错,但在我看来,它在一般(而且通常是不完美的)网络中并不那么健壮pages/html。

Chromium 是一个更新、更快、更强大的引擎。

我不知道具体的所有技术细节,但 QWebEngine 是朝着正确方向迈出的一大步。我发现这主要来自我自己的实验和经验使用。

为了给 WebKit 一个体面的尝试,看看这个项目并尝试各种页面:

http://qtweb.net/

https://github.com/magist3r/QtWeb

这里有一些关于 QtWebEngine 和 QtWebKit 的更多信息

http://wiki.qt.io/QtWebEngine

http://en.wikipedia.org/wiki/WebKit

http://wiki.qt.io/QtWebKit

至于我,我看不到 QWebEngineView 中一些非常重要的功能。首先你不能访问页面上的所有框架,你不能在所有框架中运行 JS。下一个是您不能将 QNetworkAccessManager 用于控制视图下划线层。所以现在我看不到某些问题的任何解决方案,比如 。我想相信有可能以某种方式解决它,因为 QWebEngineView 工作得更快,而且似乎没有(或更少)内存泄漏问题然后 QWebView。

框架:WebKit 与 WebEngine

自 2007 年以来,Qt WebKit 一直到版本 3。根据此 Qt 博客和此处,它已被新的基于 Chromium 的 Web 引擎取代,即 Qt WebEngine。根据 link Qt WebKit 现在工作正常,并且在未来几年将继续这样做,但是如果你想为你的应用程序或设备提供所有最新最好的 HTML5 功能,你应该考虑转向 Qt WebEngine。

正如这篇博客所说:Qt 5.4 还包含旧的 Qt WebKit 模块。 Qt WebKit 仍受支持,但从 Qt 5.4 开始,我们认为它已完成,因此不会向其添加新功能。我们还计划在未来的版本中弃用 Qt WebKit,因为新的 Qt WebEngine 提供了所需的功能。在

我的决定:我更喜欢在初始阶段使用最新的QtWebEngine。如果我碰壁了,也许我会回到 Qt WebKit。 QML:WebView 与 WebEngineView。

对于 QML 中的浏览器项目,有两个项目 WebView 和 WebEngineView。

WebKit和WebEngine中定义了同名的WebView。 WebKit 中 WebView 的文档在这里。它应该有 import QtWebKit 3.0.

要使用本文档中提到的绑定到 WebEngine 的 WebView,我们需要导入:import QtWebView 1.0。但是我们很可能会遇到错误 #5 和 #6,调试的解决方案是 link.

中的状态

我会使用后者的WebView,即WebEngine提供的那个。它与WebEngnie相关的证据是错误#5和#6的调试解决方案。以下WebView指的是本文档中WebEngine提供的那个。

正如这个博客所说:在 Qt 5.4 中,提供了 Qt WebView,它提供了一个更有限的 API 来嵌入底层操作系统原生的 Web 浏览器,用于完整的 Qt WebEngine 没有的用例不需要,或者由于来自底层 OS 的限制而无法使用的地方。在 Qt 5.4 中,Qt WebView 模块支持 iOS 和 Android。它支持将底层操作系统的原生 Web 引擎嵌入到 Qt 中,目前可用于 Android 和 iOS。正因为如此,Qt WebView也为简单的web文档集成提供了一个方便的轻量级解决方案。

WebEngineView 允许 QML 应用程序呈现动态 Web 内容区域。 WebEngineView 组件可以与其他 QML 组件共享屏幕或包含 QML 中指定的全屏 application.It 是我在不会在 iOS 和 Android 中执行的应用程序中的选择.

注意:根据这篇博客,QtWebView 将尽可能回退到使用 QtWebEngine。与此同时,他们正在通过 WebView 使更多平台成为可能。它也作为对 QT-Bug 的回复提到:虽然我们没有 OS X、Window 等的本机 WebView 实现,但我们可以回退使用 QtWebEngine

我的决定:非 Android 和 iOS 应用程序中的 WebEngineView。