Qt

QWebKitからQWebEngineへのQt



Qt From Qwebkit Qwebengine



目次

QWebKitとQWebEngineの違い



QtWebEngineモジュール

アップグレードプロセス



ヘッダーファイルを変更する

中国の問題

プラットフォームの依存関係の問題




QtWebEngineモジュール

モジュールでは、Qt WebEngineCoreはクロムのコアに基づいています。ウィジェット、WenEngine、およびプロセスは、主にデスクトップとQML用です。

WebKit主な違い:

差分プロジェクト

WebKit

WebEngine

呼び出し習慣

同期する

非同期

Html5互換性

貧しい

いいです

ウィンドウズコンパイラの互換性

いいです

  • 同期するvs非同期

QWebKit多くの操作が同時に実行されます。JS呼び出し、戻り値の取得など。QWebEngineほとんどすべての操作は非同期です。

  • Html5互換性

WebKitで開くWebGL3d CesiumJS地理情報クライアントのパフォーマンスは大幅に低下しますQWebEngine。にPythonテンソルフロー対応するテンソルボード監視ステータスページには、パフォーマンスの大きな違いが表示されます。

  • コンパイラの互換性

QWebKitウィンドウズmingwあなた++プリコンパイルされたパッケージのいくつかのバージョン。しかし、あなたが使用する場合QWebEngine、一時的にしか使えないようですVisualStudioそして公式オファーはx64バージョン。コンパイラの互換性に関しては、WebKit明らかに良い。

  • バージョンサポート

Qt5.4が提供し始めましたQWebEngineQt5.5バージョンQWebEngineQWebKit同時に存在し、Qt5.6廃棄された後QWebKit

上記の要素を組み合わせる 、意志QWebKitへの変更QWebEngine、意志QtからのバージョンQt4.8へのアップグレードQt5.7。同時にQt5たくさん使ってC ++ 11特徴的ですがVC2013以前のバージョンのペアC ++ 11基本的にあまり良いサポートではないので、VS2008 +Qt4.8工学移植VS2013 +Qt5.7。公式の例を参照してください cookiebrowser

アップグレードプロセス

ヘッダーファイルを変更する

Qt4と比較して、Qt5の主要なインフラストラクチャの変更は、ウィジェットをQtGuiモジュールから分離することです。簡単に言うと、ヘッダーファイルを変更する必要があるため、アップグレードの最初のステップはヘッダーファイルを変更することです。それ以外の場合は、コンパイルします。合格できません。

i. #include is modified to #include Ii. #incude comment out (Qt5 does not have the QColorGroup header file) Iii. #include changed to #include Iv. #include changed to #include

中国の問題

Qt5は多くの文字列関数をキャンセルするため、Qt4プロジェクトをQt5にアップグレードすると、中国語の表示で問題が発生する可能性があります。

プラットフォームの依存関係の問題

Qt5WebEngine.exeは、実行時にopengl32sw.dllダイナミックライブラリを呼び出す必要があります。システムが異なると、Qt5WebEngine.exeランタイムがクラッシュします。アプリケーションを初期化した後、(メイン関数で)呼び出されます。

QApplication::setAttribute(Qt::AA_UseSoftwareOpenGL)

そして、opengl32sw.dllを実行ディレクトリに置きます

このコード行は、異なるシステム環境によって引き起こされるクラッシュを回避するために、ソフトウェアバージョンのopenGLの使用を指定し、ハードウェアopenGLドライバーレンダリングを呼び出さないでください。