QWebKitからQWebEngineへのQt
Qt From Qwebkit Qwebengine
目次
QtWebEngineモジュール
モジュールでは、Qt WebEngineCoreはクロムのコアに基づいています。ウィジェット、WenEngine、およびプロセスは、主にデスクトップとQML用です。
対WebKit主な違い:
差分プロジェクト | WebKit | WebEngine |
呼び出し習慣 | 同期する | 非同期 |
Html5互換性 | 貧しい | いいです |
ウィンドウズコンパイラの互換性 | いいです | 差 |
- 同期するvs非同期
QWebKit多くの操作が同時に実行されます。JS呼び出し、戻り値の取得など。QWebEngineほとんどすべての操作は非同期です。
- Html5互換性
WebKitで開くWebGLの3d CesiumJS地理情報クライアントのパフォーマンスは大幅に低下しますQWebEngine。にPythonテンソルフロー対応するテンソルボード監視ステータスページには、パフォーマンスの大きな違いが表示されます。
- コンパイラの互換性
QWebKitにウィンドウズ下mingw、あなた++プリコンパイルされたパッケージのいくつかのバージョン。しかし、あなたが使用する場合QWebEngine、一時的にしか使えないようですVisualStudioそして公式オファーはx64バージョン。コンパイラの互換性に関しては、WebKit明らかに良い。
- バージョンサポート
Qt5.4が提供し始めましたQWebEngine、Qt5.5バージョンQWebEngineとQWebKit同時に存在し、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ドライバーレンダリングを呼び出さないでください。