Qt WebEngine Plataforma Notas
Creación de Qt WebEngine a partir del código fuente
No se admiten compilaciones estáticas.
Los requisitos para compilar módulos Qt desde el código fuente se indican por separado para cada plataforma compatible:
- Qt para Windows - Compilación desde el código fuente
- Requisitos de Qt para X11
- Qt para macOS - Creación desde el código fuente
Además, se necesitan las siguientes herramientas para compilar el módulo Qt WebEngine módulo:
Todas las plataformas
Nota: Qt WebEngine requiere un compilador compatible con C++20 en todas las plataformas, debido a su dependencia del proyecto Chromium. Mientras que Qt en su conjunto sólo requiere C++17, Qt WebEngine es una excepción.
En todas las plataformas, se requieren las siguientes herramientas en el momento de la compilación:
- Soporte del compilador C++20
- CMake versión al menos 3.19 o superior.
- Nodejs 20.0 versión de 64 bits o posterior.
- Python versión 3.8 o posterior.
- Ninja versión 3.8 o posterior.
- Módulo html5lib de Python3.
- Binario GNU gperf.
- Binario GNU bison.
- Binario GNU flex.
Windows
En Windows, se requieren las siguientes herramientas adicionales:
- Visual Studio 2019 o superior.
- Versión del compilador de Visual Studio al menos 14.29 si se compila con Visual Studio 2019.
- Versión del compilador de Visual Studio al menos 14.36 si se compila con Visual Studio 2022
- SDK de Windows 11 al menos de la versión 10.0.26100.0
Nota: No se recomienda utilizar herramientas de msys2 o cygwin para compilar Qt WebEngine, ya que pueden producirse errores de compilación.
Nota: Actualmente, Qt WebEngine no compila con MinGW.
Linux
En Linux, se requieren las siguientes herramientas adicionales:
- Un binario pkg-config.
- Una biblioteca Glibc de al menos la versión 2.16 o posterior.
- Cabeceras de desarrollo Mesa.
- Librería Nss versión 3.26 como mínimo.
- La versión de Gcc debe ser al menos 10.0 para compilar QtWebEngine.
- La versión de Clang debe ser al menos 17.0 para compilar QtWebEngine.
- Biblioteca Glib versión 2.32.0 o posterior. (opcional, se utiliza integrado en caso contrario)
- Biblioteca Harfbuzz versión 4.3.0 o posterior. (opcional, si no, se utiliza la incorporada)
- Librería Libudev versión o posterior. (opcional, si no, se utiliza la incorporada)
- Librería Libpng versión 1.6.0 o posterior. (opcional, si no, se utiliza la incorporada)
- Librería Libtiff versión 4.5.0 o posterior. (opcional, si no, se utiliza la biblioteca integrada)
- Biblioteca Re2 versión 11.0.0 o posterior. (opcional, si no, se utiliza la biblioteca incorporada)
- Biblioteca Icu versión 70 o posterior. (opcional, si no se utiliza la biblioteca incorporada)
- Opus library versión 1.3.1 o posterior. (opcional, si no, se utiliza la biblioteca integrada)
- Vpx library versión 1.10.0 o posterior. (opcional, si no, se utiliza la biblioteca incorporada)
- Librería Libavutil versión 58.29.100 o posterior. (opcional, si no, se utiliza la biblioteca integrada)
- Librería Libavcodec versión 60.31.102 o posterior. (opcional, si no, se utiliza la biblioteca incorporada)
- Librería Libavformat versión 60.16.100 o posterior. (opcional, si no, se utiliza la biblioteca integrada)
- Biblioteca Openh264 versión 2.4.1 o posterior. (opcional, si no, se utiliza la biblioteca integrada)
Qt WebEngine requiere pkg-config para detectar la mayoría de sus dependencias. Se requieren los siguientes archivos pkg-config:
- Fontconfig
- Dbus
Si Qt se configuró para xcb, también se necesitan los siguientes archivos pkg-config:
- x11
- libdrm
- xcomposite
- xcursor
- xrandr
- xi
- xproto
- xshmfence
- xtst
- xkbcommon
- xkbfile
- xcbdri3
macOS
En macOS, se requiere lo siguiente:
- macOS 10.14 o posterior
- Xcode 12.0 o posterior
- SDK de macOS 11 o posterior
Nota: Qt WebEngine no puede compilarse para el modo de 32 bits de macOS (utilizando la dirección macx-clang-32 mkspec ).
Uso de versiones anteriores de Qt para compilar Qt WebEngine
Se puede compilar Qt WebEngine con versiones anteriores de Qt (hasta la última versión LTS). Esto significa que Qt WebEngine 6.4 se puede compilar con Qt 6.2.x, Qt 6.3.x y Qt 6.4.
Para usar una versión anterior de Qt para construir Qt Webengine:
- Descarga los fuentes de qtwebengine.
- Desde la versión anterior de Qt, ejecute
../qtbase/bin/qt-configure-module . cmake --build . --parallel cmake --install .
Nota: También puede utilizar qmake con make y make instalar, pero este método se considera legado y no se recomienda para Qt 6 y posteriores.
Compatibilidad con Mac App Store
Las aplicaciones que utilizan Qt WebEngine no son compatibles con la Mac App Store, porque:
- La parte Chromium del código utiliza varios métodos API privados, que están prohibidos por el App Store.
- Las aplicaciones enviadas a la App Store deben estar firmadas con la función App Sandbox activada. La función App Sandbox interfiere con la propia inicialización del sandbox de Chromium, lo que provoca que Chromium no se inicialice correctamente. Esto también está relacionado con el uso de la API privada. Además, el propio Chromium independiente no se prueba oficialmente con la App Sandbox activada, e incluso si se trabaja para eludir las restricciones de la App Store, eso no garantizaría un comportamiento correcto de la biblioteca.
Compatibilidad de macOS Airplay con MacBooks con GPU doble
Para que Qt WebEngine funcione correctamente al transmitir a un AppleTV desde un MacBook que admita la conmutación de GPU, es importante añadir la opción NSSupportsAutomaticGraphicsSwitching al archivo Info.plist de la aplicación, con el valor YES. De lo contrario, podrían producirse problemas de renderizado al crear nuevas instancias de vista del motor web después de activar o desactivar Airplay.
Soporte de perfil OpenGL QSurfaceFormat por defecto
Si hay que establecer un nuevo valor predeterminado QSurfaceFormat con un perfil OpenGL modificado, debe establecerse antes de declarar la instancia de la aplicación, para asegurarse de que todos los contextos OpenGL creados utilicen el mismo perfil OpenGL.
En macOS, si el valor por defecto QSurfaceFormat se establece después de la instancia de la aplicación, la aplicación saldrá con qFatal(), e imprimirá un mensaje indicando que el valor por defecto QSurfaceFormat debe establecerse antes de la instancia de la aplicación.
Soporte de Sandboxing
Qt WebEngine proporciona soporte de sandboxing out-of-the-box para los procesos de renderizado de Chromium.
En Linux, tenga en cuenta las siguientes restricciones:
- El kernel tiene que soportar la característica de espacios de nombres anónimos (versión del kernel 3.8 o posterior). Sin embargo, en Debian, Ubuntu y otras distribuciones derivadas de Debian, esta función está desactivada por defecto. Puede activarse estableciendo
/proc/sys/kernel/unprivileged_userns_cloneen 1. - El núcleo debe ser compatible con la función
seccomp-bpf(versión del núcleo 3.5 o posterior). - Las cajas de arena setuid no son compatibles y, por tanto, están desactivadas.
Para desactivar explícitamente el sandboxing, utilice una de las siguientes opciones:
- Establezca la variable de entorno
QTWEBENGINE_DISABLE_SANDBOXen 1. - Pasar el argumento de línea de comandos
--no-sandboxal ejecutable de la aplicación de usuario. - Establecer
QTWEBENGINE_CHROMIUM_FLAGSen--no-sandbox.
Para obtener más información, consulte Uso de argumentos de línea de comandos.
Requisitos de memoria en el entorno Docker
Cuando se ejecutan ejemplos del Motor Web Qt en un contenedor Docker y se navega por sitios con mucho contenido, pueden producirse errores de BUS (SIGBUS). Típicamente, esto es causado por Docker ejecutando un contenedor con un espacio de memoria demasiado pequeño (como 64MB). Para solucionar este problema, aumente el tamaño del espacio de memoria.
Accesibilidad y rendimiento
Qt WebEngine habilita el soporte de accesibilidad para páginas web cuando se cumplen las siguientes condiciones:
- Qt Core está configurado y construido con el soporte de accesibilidad activado.
- El sistema operativo notifica al complemento QPA que debe activarse la accesibilidad. Esto ocurre, por ejemplo, cuando se utiliza una aplicación de lector de pantalla en Windows o VoiceOver en macOS.
En algunas configuraciones antiguas de Linux, la accesibilidad puede causar una ralentización significativa en páginas HTML de gran tamaño.
Por ello, el soporte de accesibilidad de Qt WebEngine puede desactivarse en Linux, estableciendo la variable de entorno QTWEBENGINE_ENABLE_LINUX_ACCESSIBILITY en 0.
Ventanas emergentes en aplicaciones a pantalla completa en Windows
Debido a una limitación en el compositor de Windows, las aplicaciones que muestran una vista de motor web a pantalla completa no mostrarán correctamente ventanas emergentes u otras ventanas de nivel superior. El motivo y la solución se describen en Ventanas basadas en OpenGL a pantalla completa.
Manifiesto de la aplicación Windows
Un manifiesto es un archivo XML que se lee cuando se inicia el programa e informa a Windows de cómo ejecutar el programa. Algunas funciones de Qt WebEngine pueden requerir la adición de un archivo de manifiesto para que la aplicación de usuario funcione correctamente en Windows.
Los siguientes fragmentos muestran la estructura del archivo de manifiesto y cómo incrustarlo en el programa.
Nota: Estos fragmentos de código están tomados del ejemplo WebEngine Quick Nano Browser.
El archivo de manifiesto define qué versiones de Windows soporta la aplicación. httpUserAgent necesita esta información para informar de la versión correcta 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>Para incrustar el archivo en el ejecutable, añádelo a las fuentes:
...
qt_add_executable(quicknanobrowser
main.cpp
)
if(WIN32)
set_property(
TARGET quicknanobrowser
APPEND PROPERTY
SOURCES quicknanobrowser.exe.manifest)
endif()
...Para más información, consulte la página de documentación del manifiesto de la aplicación.
© 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.