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以降
注: msys2
またはcygwin
のツールを使用してQt WebEngine をビルドすることは、ビルドエラーが発生する可能性があるため推奨されません。
Linux
Linuxでは、ClangまたはGCCのバージョン10以降が必要です。
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 バージョン(LTS の最終バージョンまで)でのQt WebEngine のビルドはサポートされています。つまり、Qt WebEngine 6.4 は Qt 6.2.x、Qt 6.3.x、Qt 6.4 でビルドできます。
Qt WebEngine をビルドするために、それ以前の Qt バージョンを使用するには:
- 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をオンまたはオフに切り替えた後に新しいウェブエンジン・ビュー・インスタンスを作成する際に、レンダリングの問題が発生する可能性があります。
デフォルトの 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 は、以下の条件を満たすと、ウェブページのアクセシビリティサポートを有効にします:
- Qt Core アクセシビリティのサポートが有効な状態で構成および構築されている。
- QPA プラグインは、アクセシビリティを有効にする必要があることをオペレーティング システムから通知されます。こ れは、 た と えば Windows の ス ク リ ーン リ ーダ アプ リ ケーシ ョ ンや macOS の VoiceOver を使用す る 場合に発生 し ます。
一部の古いLinux構成では、アクセシビリティによって大規模なHTMLページで大幅な速度低下が発生することがあります。
そのため、LinuxではQTWEBENGINE_ENABLE_LINUX_ACCESSIBILITY
環境変数を0に設定することで、Qt WebEngine アクセシビリティ・サポートを無効にすることができます。
Windowsのフルスクリーンアプリケーションのポップアップ
Windowsのコンポジターの制限により、フルスクリーンのウェブエンジン・ビューを表示するアプリケーションでは、ポップアップやその他のトップレベル・ウィンドウが正しく表示されません。その理由と回避策はフルスクリーン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() ...
詳細については、アプリケーションマニフェストのドキュメントページを参照してください。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.