Qt WebEngine Notes sur la plate-forme
Construire Qt WebEngine à partir des sources
Les constructions statiques ne sont pas prises en charge.
Les conditions requises pour la construction de modules Qt à partir des sources sont énumérées séparément pour chaque plate-forme prise en charge :
- Qt pour Windows - Construction à partir des sources
- Exigences de Qt pour X11
- Qt pour macOS - Construction à partir des sources
En outre, les outils suivants sont nécessaires pour construire le module Qt WebEngine les outils suivants sont nécessaires pour construire le module
Toutes les plateformes
Note : Qt WebEngine nécessite un compilateur compatible C++20 sur toutes les plateformes, en raison de sa dépendance au projet Chromium. Alors que Qt dans son ensemble ne nécessite que C++17, Qt WebEngine est une exception.
Sur toutes les plateformes, les outils suivants sont nécessaires au moment de la compilation :
- Prise en charge du compilateur C++20
- CMake version au moins 3.19 ou supérieure.
- Nodejs 20.0 64 bits ou version ultérieure.
- Python 3.8 ou version ultérieure.
- Ninja version 3.8 ou ultérieure.
- Module html5lib de Python3.
- binaire GNU gperf.
- GNU bison binaire.
- GNU flex binaire.
Windows
Sous Windows, les outils supplémentaires suivants sont nécessaires :
- Visual Studio 2019 ou une version plus récente.
- Version du compilateur Visual Studio au moins 14.29 si compilé avec Visual Studio 2019.
- Version du compilateur Visual Studio au moins 14.36 si compilé avec Visual Studio 2022
- Windows 11 SDK au moins la version 10.0.26100.0
Note : Il n'est pas recommandé d'utiliser les outils de msys2 ou cygwin pour construire Qt WebEngine car cela peut entraîner des erreurs de construction.
Note : Actuellement, Qt WebEngine ne se compile pas avec MinGW.
Linux
Sous Linux, les outils supplémentaires suivants sont nécessaires :
- Un binaire pkg-config.
- La bibliothèque Glibc, version 2.16 ou ultérieure.
- En-têtes de développement Mesa.
- La bibliothèque Nss est au moins la version 3.26.
- La version de Gcc doit être au moins 10.0 pour compiler QtWebEngine.
- La version de Clang doit être au moins 17.0 pour compiler QtWebEngine.
- Bibliothèque Glib version 2.32.0 ou ultérieure. (facultatif, intégré sinon)
- Bibliothèque Harfbuzz version 4.3.0 ou ultérieure. (facultatif, intégré utilisé autrement)
- Version de la bibliothèque Libudev ou ultérieure. (facultatif, intégré utilisé autrement)
- Bibliothèque Libpng version 1.6.0 ou ultérieure. (facultatif, intégré utilisé autrement)
- Bibliothèque Libtiff version 4.5.0 ou ultérieure. (facultatif, intégré utilisé autrement)
- Bibliothèque Re2 version 11.0.0 ou ultérieure. (facultatif, intégré utilisé autrement)
- Bibliothèque Icu version 70 ou ultérieure. (optionnel, intégré utilisé autrement)
- Bibliothèque Opus version 1.3.1 ou ultérieure. (facultatif, intégré utilisé autrement)
- Bibliothèque Vpx version 1.10.0 ou ultérieure. (facultatif, intégré utilisé autrement)
- Bibliothèque Libavutil version 58.29.100 ou ultérieure. (facultatif, intégré utilisé autrement)
- Bibliothèque Libavcodec version 60.31.102 ou ultérieure. (optionnel, intégré utilisé autrement)
- Bibliothèque Libavformat version 60.16.100 ou ultérieure. (facultatif, intégré utilisé autrement)
- Bibliothèque Openh264 version 2.4.1 ou ultérieure. (facultatif, intégré utilisé autrement)
Qt WebEngine nécessite pkg-config pour détecter la plupart de ses dépendances. Les fichiers pkg-config suivants sont nécessaires :
- Fontconfig
- Dbus
Si Qt XML a été configuré pour xcb, les fichiers pkg-config suivants sont également nécessaires :
- x11
- libdrm
- xcomposite
- xcursor
- xrandr
- xi
- xproto
- xshmfence
- xtst
- xkbcommon
- xkbfile
- xcbdri3
macOS
Sur macOS, les éléments suivants sont nécessaires :
- macOS 10.14 ou version ultérieure
- Xcode 12.0 ou version ultérieure
- macOS 11 SDK ou version ultérieure
Remarque : Qt WebEngine ne peut pas être construit pour le mode 32 bits de macOS (à l'aide de macx-clang-32 mkspec ).
Utilisation de versions antérieures de Qt pour la construction Qt WebEngine
La construction de Qt WebEngine avec des versions antérieures de Qt (jusqu'à la dernière version LTS) est prise en charge. Cela signifie que Qt WebEngine 6.4 peut être construit avec Qt 6.2.x, Qt 6.3.x et Qt 6.4.
Pour utiliser une version antérieure de Qt pour construire Qt WebEngine :
- Téléchargez les sources de qtwebengine.
- À partir de la version antérieure de Qt, exécutez
../qtbase/bin/qt-configure-module . cmake --build . --parallel cmake --install .
Note : Vous pouvez également utiliser qmake avec l'installation de make et make, mais cette méthode est considérée comme ancienne et n'est pas recommandée pour Qt 6 et les versions ultérieures.
Compatibilité avec le Mac App Store
Les applications utilisant Qt WebEngine ne sont pas compatibles avec le Mac App Store, pour les raisons suivantes :
- La partie Chromium du code utilise plusieurs méthodes API privées, qui sont interdites par l'App Store.
- Les applications soumises à l'App Store doivent être signées avec la fonction App Sandbox activée. La fonction App Sandbox interfère avec l'initialisation du bac à sable de Chromium, ce qui fait que Chromium n'est pas correctement initialisé. Cela est également lié à l'utilisation de l'API privée. En outre, Chromium autonome n'est pas officiellement testé avec la fonction App Sandbox activée, et même si des travaux sont effectués pour contourner les restrictions de l'App Store, cela ne garantirait pas un comportement correct de la bibliothèque.
Prise en charge de macOS Airplay sur les MacBooks avec double GPU
Pour que Qt WebEngine fonctionne correctement lors de la diffusion en continu vers une AppleTV à partir d'un MacBook qui prend en charge la commutation de GPU, il est important d'ajouter l'option NSSupportsAutomaticGraphicsSwitching au fichier Info.plist de l'application, avec la valeur YES. Dans le cas contraire, des problèmes de rendu peuvent survenir lors de la création de nouvelles instances de vue du moteur web après l'activation ou la désactivation d'Airplay.
Prise en charge du profil OpenGL QSurfaceFormat par défaut
Si un nouveau QSurfaceFormat par défaut avec un profil OpenGL modifié doit être défini, il doit l'être avant que l'instance de l'application ne soit déclarée, afin de s'assurer que tous les contextes OpenGL créés utilisent le même profil OpenGL.
Sur macOS, si la valeur par défaut QSurfaceFormat est définie après l'instance de l'application, l'application sortira avec qFatal(), et affichera un message indiquant que la valeur par défaut QSurfaceFormat doit être définie avant l'instance de l'application.
Prise en charge du bac à sable
Qt WebEngine fournit un support de sandboxing prêt à l'emploi pour les processus de rendu de Chromium.
Sous Linux, notez les restrictions suivantes :
- Le noyau doit prendre en charge la fonctionnalité des espaces de noms anonymes (version 3.8 du noyau ou ultérieure). Cependant, sur Debian, Ubuntu et d'autres distributions dérivées de Debian, cette fonctionnalité est désactivée par défaut. Elle peut être activée en mettant
/proc/sys/kernel/unprivileged_userns_cloneà 1. - Le noyau doit prendre en charge la fonctionnalité
seccomp-bpf(version 3.5 du noyau ou ultérieure). - Les bacs à sable Setuid ne sont pas pris en charge et sont donc désactivés.
Pour désactiver explicitement le sandboxing, utilisez l'une des options suivantes :
- Attribuer la valeur 1 à la variable d'environnement
QTWEBENGINE_DISABLE_SANDBOX. - Passez l'argument de ligne de commande
--no-sandboxà l'exécutable de l'application utilisateur. - Attribuez la valeur
--no-sandboxà la variable d'environnementQTWEBENGINE_CHROMIUM_FLAGS.
Pour plus d'informations, voir Utilisation des arguments de ligne de commande.
Mémoire requise dans l'environnement Docker
Lors de l'exécution des exemples de Qt Web Engine dans un conteneur Docker et de la navigation sur des sites à fort contenu, des erreurs de BUS (SIGBUS) peuvent être signalées. Généralement, cela est dû au fait que Docker exécute un conteneur avec un espace mémoire trop petit (tel que 64 Mo). Pour résoudre ce problème, augmentez la taille de l'espace mémoire.
Accessibilité et performances
Qt WebEngine permet la prise en charge de l'accessibilité des pages web lorsque les conditions suivantes sont remplies :
- Qt Core Le site web est configuré et construit avec la prise en charge de l'accessibilité activée.
- Le plugin QPA est informé par le système d'exploitation que l'accessibilité doit être activée. Cela se produit par exemple lors de l'utilisation d'un lecteur d'écran sous Windows ou de VoiceOver sous macOS.
Sur certaines anciennes configurations Linux, l'accessibilité peut provoquer un ralentissement significatif sur les grandes pages HTML.
Pour cette raison, la prise en charge de l'accessibilité par Qt WebEngine peut être désactivée sous Linux, en fixant la variable d'environnement QTWEBENGINE_ENABLE_LINUX_ACCESSIBILITY à 0.
Popups dans les applications plein écran sous Windows
En raison d'une limitation du compositeur Windows, les applications qui affichent une vue en plein écran du moteur web n'affichent pas correctement les fenêtres contextuelles ou les autres fenêtres de niveau supérieur. La raison et la solution sont décrites dans Fullscreen OpenGL Based Windows.
Manifeste d'application Windows
Un manifeste est un fichier XML qui est lu lorsque le programme démarre et qui informe Windows sur la manière d'exécuter le programme. Certaines fonctionnalités de Qt WebEngine peuvent nécessiter l'ajout d'un fichier manifeste pour que l'application utilisateur fonctionne correctement sous Windows.
Les extraits suivants montrent la structure du fichier manifeste et la manière de l'intégrer dans le programme.
Note : Ces extraits de code sont tirés de l'exemple WebEngine Quick Nano Browser.
Le fichier manifeste définit les versions de Windows prises en charge par l'application. httpUserAgent a besoin de ces informations pour signaler la bonne version de 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>Pour intégrer le fichier dans l'exécutable, ajoutez-le aux sources :
...
qt_add_executable(quicknanobrowser
main.cpp
)
if(WIN32)
set_property(
TARGET quicknanobrowser
APPEND PROPERTY
SOURCES quicknanobrowser.exe.manifest)
endif()
...Pour plus d'informations, voir la page de documentation Application manifest.
© 2026 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.