Deploying Qt WebEngine Applications
The way to package and deploy applications varies between operating systems. For Windows and macOS, windeployqt and macdeployqt automate the steps to generate a stand-alone application package.
When manually deploying applications that depend on Qt WebEngine, all the files that are required to run the application have to be included: libraries, QML imports, plugins, and translations.
For more information, see Deploying Qt Applications.
Qt WebEngine does try to support all Supported Platforms of Qt. However, due to different requirements of Chromium this is not always possible. Known limitations are:
- Qt WebEngine currently supports only Windows, Linux, and macOS.
- On Windows, Qt WebEngine only supports Windows Vista or newer as target platform. Due to use of newer API in Chromium, Windows XP is not supported. WinRT is not supported, either.
Deploying Applications Manually
When manually deploying applications that depend on Qt WebEngine, the following files might have to be deployed:
- QML imports
- Qt WebEngine process
- Audio and video codecs
The following libraries must be deployed with applications that depend on Qt WebEngine:
- QtWebEngineCore library
- QtWebEngineWidgets or QtWebEngine libraries, depending on application type
Deploying QML Imports
If Qt Quick integration is used in the application, the QtWebEngine import directory needs to be deployed.
Deploying Qt WebEngine Processes
Qt WebEngine takes advantage of the multi-process model that the Chromium project offers. The multi-process model requires that the Qt WebEngine Process executable be deployed alongside your application.
The WebEngine process is executed for each QWebEngineView or WebEngineView instance. For example, a browser application with two tabs open should have two separate instances of the process running. This is a common approach used by most modern web engines to provide a stable browsing experience.
At runtime, Qt WebEngine looks for the
QtWebEngineProcess executable in the directory that QLibraryInfo::location(QLibraryInfo::LibraryExecutablesPath) returns. For Qt installations, this is
QTDIR/libexec (Linux) or
QTDIR\bin (Windows). The path can be changed by defining a
qt.conf file, for example. Alternatively, an executable path can be set as a value of the
QTWEBENGINEPROCESS_PATH environment variable. On macOS, Qt WebEngine looks for the executable in
Qt WebEngine requires the following resource files:
qtwebengine_resources.pakcontains the resources needed by Chromium.
qtwebengine_devtools_resources.pakcontains tools for remote debugging.
qtwebengine_resources_100p.pakcontains images suitable for low resolution displays.
qtwebengine_resources_200p.pakcontains images suitable for high DPI displays.
icudtl.datprovides support for International Components for Unicode (ICU). It is the Chromium version of ICU, which is not needed if Qt WebEngine was configured to use the system ICU.
Resources are searched from the following locations:
- On Linux and Windows: the
resourcesdirectory in the directory specified by QLibraryInfo::location(QLibraryInfo::DataPath)
- On macOS:
- The application directory specified by QCoreApplication::applicationDirPath()
Alternatively, a resources directory path can be set as a value of the
QTWEBENGINE_RESOURCES_PATH environment variable.
Locale data (such as
en-US.pak) is searched form the following locations:
- On macOS:
- On Linux and Windows:
qtwebengine_localesdirectory in the directory specified by QLibraryInfo::location(QLibraryInfo::TranslationsPath)
Alternatively, a locales directory path can be set as a value of the
QTWEBENGINE_LOCALES_PATH environment variable.
QTQUICK_COMPILER_SKIPPED_RESOURCES += resources/my_resource.qrc
© 2023 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.