web-dev-qa-db-ja.com

QWebViewまたはQWebEngineView

QWebViewとQWebEngineViewの間にfunctionalの違いはありますか?正しく理解すれば、QWebViewはwebkitですが、QWebEngineViewは点滅します。プログラマーに違いはありますか? 1つは他のルックアンドフィールのカスタマイズを提供しますか?

25
graywolf

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で使用されているものです。私の意見では、悪くはありませんが、一般的な(そしてしばしば不完全な)Webページ/ html全体では堅牢ではありません。

Chromiumは、はるかに新しく、高速で、堅牢なエンジンです。

私はすべての技術的な詳細を具体的には知りませんが、QWebEngineは正しい方向への大きな一歩です。私はこれを主に自分の実験的で経験的な使用法から見つけました。

WebKitを適切に試してみるには、このプロジェクトを見て、さまざまなページを試してください。

http://qtweb.net/

https://github.com/magist3r/QtWeb

QtWebEngine v QtWebKitに関する詳細情報はこちら

http://wiki.qt.io/QtWebEngine

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

http://wiki.qt.io/QtWebKit

21
phyatt

私に関しては、QWebEngineViewには非常に重要な機能がありません。まず、ページ上のすべてのフレームにアクセスできず、すべてのフレームでJSを実行できません。次は、コントロールビューの下線レイヤーにQNetworkAccessManagerを使用できないことです。そのため、現時点では、次のようないくつかの問題の解決策はありません カスタムアプリケーションでflashplayerのサウンドを無効にする方法? QWebEngineViewははるかに高速に動作し、QWebViewよりもメモリリークの問題が少ない(または少ない)ため、何らかの方法で解決できると信じたいと思います。

5
user3479125

フレームワーク:WebKitとWebEngine

2007年からバージョン3まではQt WebKitが使用されていました。このQtブログとここによれば、Qt WebEngineである新しいChromiumベースのWebエンジンに置き換えられています。リンクによると、Qt WebKitは現在正常に機能しており、今後数年間は引き続き機能しますが、アプリケーションまたはデバイスで最新の優れたHTML5機能をすべて使用したい場合は、Qt WebEngineへの移行を検討する必要があります。

このブログが述べているように:Qt 5.4には古いQt WebKitモジュールも含まれています。 Qt WebKitは引き続きサポートされていますが、Qt 5.4の時点では完了していると見なされるため、新しい機能は追加されません。新しいQt WebEngineが必要なものを提供するため、Qt WebKitを将来のリリースで廃止することも計画しています。に

私の決定:私は初期段階にいるとき、特に最新のQtWebEngineを使用することを好みます。壁にぶつかったら、Qt WebKitに戻るかもしれません。 QML:WebView対WebEngineView。

QMLでブラウザアイテムを使用する場合、WebViewとWebEngineViewの2つのアイテムがあります。

同じ名前の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 WebEngineが必要でない、またはそれが可能なユースケースのために、基礎となるオペレーティングシステムにネイティブなWebブラウザーを埋め込むためのより制限されたAPIを提供するQt WebViewが提供されます基礎となるOSからの制限のために使用される必要があります。 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、WindowなどのネイティブWebView実装はありませんが、フォールバックしてQtWebEngineを使用できます

私の決定:非AndroidおよびiOSアプリケーションのWebEngineView。

3
Siamak Rahimi