Qt WebEngine プラットフォームノート
ソースから Qt WebEngine をビルドする
スタティックビルドはサポートされていません。
ソースから Qt モジュールをビルドするための要件は、サポートされているプラットフォームごとに個別に記載されています:
また、Qt WebEngineモジュールのビルドには以下のツールが必要です:
すべてのプラットフォーム
すべてのプラットフォームで、ビルド時に以下のツールが必要です:
- C++20コンパイラのサポート
- CMake 3.19以降
- html5libライブラリを含むPython3
- Bison、Flex
- GPerf
- Node.jsバージョン14以降
Windows
Windowsでは、以下の追加ツールが必要です:
- Visual Studio 2019以降、またはclang-clバージョン10以降
- アクティブテンプレートライブラリ(ATL)、通常はVisual Studioのインストールに含まれる
- Windows 11 SDKバージョン10.0.22621.0以降
注: Qt WebEngine のビルドにmsys2
またはcygwin
のツールを使用することは、ビルドエラーを引き起こす可能性があるため、推奨されません。
Linux
Linux では、Clang または GCC バージョン 9 以降が必要です。
Qt WebEngine は、依存関係のほとんどを検出するためにpkg-config
を必要とします。以下のpkg-config
ファイルが必要です:
dbus-1
fontconfig
Qt がxcb
用に設定されている場合は、次のpkg-config
ファイルも必要です:
libdrm
xcomposite
xcursor
xi
xrandr
xscrnsaver
xtst
macOS
macOS では、以下が必要です:
- macOS 10.14以降
- Xcode 12.0以降
- macOS 11 SDKまたはそれ以降
注意: Qt WebEngine は macOS の 32 ビットモードではビルドできません(macx-clang-32
mkspec
を使用)。
以前の Qt バージョンを使用して Qt WebEngine をビルドする
Qt WebEngine のビルドには、以前の Qt バージョン(最後の LTS バージョンまで)がサポートされています。つまり、Qt WebEngine 6.4はQt 6.2.x、Qt 6.3.x、Qt 6.4でビルドできます。
それ以前のバージョンの Qt を使用して Qt Webengine をビルドするには、以下の手順に従います:
- qtwebengineのソースをダウンロードしてください。
- 以前のQtバージョンから、
qmake && make (&& make install)
.
Mac App Storeとの互換性
Qt WebEngine を使用したアプリケーションは Mac App Store と互換性がありません:
- コードの Chromium 部分には、App Store で禁止されているプライベート API メソッドがいくつか使用されています。
- App Store に提出するアプリケーションは、App Sandbox 機能を有効にしてコード署名を行う必要があります。App Sandbox機能は、Chromium自身のサンドボックス初期化を妨害するため、Chromiumが適切に初期化されません。これはプライベートAPIの使用とも関連している。さらに、スタンドアロンのChromium自体はApp Sandboxを有効にして公式にテストされておらず、App Storeの制限を回避する作業が行われたとしても、ライブラリの正しい動作を保証するものではない。
デュアルGPU搭載MacBookでのmacOS Airplayサポート
GPU 切り替えをサポートする MacBook から AppleTV にストリーミングするときに Qt WebEngine を正しく動作させるには、アプリケーションの Info.plist ファイルにNSSupportsAutomaticGraphicsSwitching
オプションを追加し、値をYES
に設定することが重要です。そうしないと、Airplay をオンまたはオフに切り替えた後、新しい Web エンジンのビューインスタンスを作成するときに、レンダリングの問題が発生する可能性があります。
デフォルトの QSurfaceFormat OpenGL プロファイルのサポート
変更されたOpenGLプロファイルを持つ新しいデフォルトQSurfaceFormat を設定する必要がある場合、作成されるすべてのOpenGLコンテキストが同じOpenGLプロファイルを使用するように、アプリケーションインスタンスが宣言される前に設定する必要があります。
macOSでは、デフォルトのQSurfaceFormat がアプリケーション・インスタンスの後で設定されると、アプリケーションはqFatal ()で終了し、デフォルトのQSurfaceFormat がアプリケーション・インスタンスの前に設定されるべきであるというメッセージが表示されます。
サンドボックスのサポート
Qt WebEngine は、Chromium のレンダープロセスに対して、すぐに使えるサンドボックスのサポートを提供します。
Linux では、以下の制限があります:
- カーネルが匿名名前空間機能をサポートしている必要があります(カーネルバージョン3.8以降)。ただし、Debian、Ubuntu、およびその他のDebian派生ディストリビューションでは、この機能はデフォルトでオフになっています。この機能をオンにするには、
/proc/sys/kernel/unprivileged_userns_clone
を 1 に設定する。 - カーネルが
seccomp-bpf
機能をサポートしている必要があります(カーネルバージョン3.5以降)。 - Setuidサンドボックスはサポートされていないため、無効になっています。
サンドボックスを明示的に無効にするには、以下のオプションのいずれかを使用する:
- 環境変数
QTWEBENGINE_DISABLE_SANDBOX
を1に設定する。 - ユーザー・アプリケーション実行ファイルに
--no-sandbox
コマンドライン引数を渡す。 QTWEBENGINE_CHROMIUM_FLAGS
を--no-sandbox
に設定する。
詳細については、「コマンドライン引数の使用」を参照してください。
Docker環境におけるメモリ要件
DockerコンテナでQt Web Engineのサンプルを実行し、コンテンツの多いサイトを閲覧すると、BUSエラー(SIGBUS)が報告されることがあります。一般的に、これはDockerが小さすぎるメモリ領域(64MBなど)でコンテナを実行していることが原因です。この問題を解決するには、メモリ領域のサイズを増やしてください。
アクセシビリティとパフォーマンス
Qt WebEngine では、以下の条件を満たすと Web ページのアクセシビリティをサポートします:
- Qt Core がアクセシビリティサポートを有効にして構成され、ビルドされている。
- QPA プラグインが、アクセシビリティを有効にするようオペレーティングシステムから通知される。こ れは、 た と えば Windows のス ク リ ーン リ ーダ アプ リ ケーシ ョ ンや macOS の VoiceOver を使用す る と き に発生 し ます。
一部の古い Linux 構成では、アクセシビリティが原因で大きな HTML ページが著しく遅くなることがあります。
そのため、Qt WebEngine のアクセシビリティサポートは、環境変数QTWEBENGINE_ENABLE_LINUX_ACCESSIBILITY
を 0 に設定することで Linux 上で無効にすることができます。
Windows におけるフルスクリーンアプリケーションのポップアップ
Windows のコンポジターの制限により、フルスクリーンの Web エンジンビューを表示するアプリケーションでは、ポップアップやその他のトップレベルのウィンドウが正しく表示されません。その理由と回避策はフルスクリーンOpenGLベースのWindowsで説明されています。
Windowsアプリケーション・マニフェスト
マニフェストは XML ファイルで、プログラムの起動時に読み込まれ、プログラムの実行方法を Windows に通知します。Qt WebEngine の機能の中には、Windows 上でユーザー アプリケーションを正しく動作させるためにマニフェスト ファイルを追加する必要があるものがあります。
以下のスニペットは、マニフェストファイルの構造と、それをプログラムに埋め込む方法を示しています。
注: これらのコードスニペットは、WebEngine Quick Nano Browserの例から引用しています。
マニフェスト ファイルは、アプリケーションがサポートする Windows バージョンを定義します。httpUserAgent は、正しい Windows バージョンをレポートするためにこの情報を必要とします。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <!--The ID below indicates application support for Windows Vista --> <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> <!--The ID below indicates application support for Windows 7 --> <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> <!--The ID below indicates application support for Windows 8 --> <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> <!--The ID below indicates application support for Windows 8.1 --> <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> <!--The ID below indicates application support for Windows 10/11 --> <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> </application> </compatibility> </assembly>
このファイルを実行ファイルに埋め込むには、ソースに追加します:
... qt_add_executable(quicknanobrowser main.cpp utils.h ) if(WIN32) set_property( TARGET quicknanobrowser APPEND PROPERTY SOURCES quicknanobrowser.exe.manifest) endif() ...
詳細については、アプリケーションマニフェストのドキュメントページを参照してください。
©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。