Qt WebEngine Anmerkungen zur Plattform

Erstellung von Qt WebEngine aus dem Quellcode

Statische Builds werden nicht unterstützt.

Die Anforderungen für die Erstellung von Qt-Modulen aus dem Quellcode sind für jede unterstützte Plattform separat aufgeführt:

Zusätzlich werden die folgenden Werkzeuge benötigt, um das Qt WebEngine Moduls:

Alle Plattformen

Auf allen Plattformen sind die folgenden Tools zum Zeitpunkt der Erstellung erforderlich:

  • C++20 Compiler-Unterstützung
  • CMake 3.19 oder neuer
  • Python 3 mit html5lib-Bibliothek
  • Bison, Flex
  • GPerf
  • Node.js Version 14 oder höher

Windows

Unter Windows sind die folgenden zusätzlichen Tools erforderlich:

  • Visual Studio 2019 oder höher, oder clang-cl Version 10 oder höher
  • Active Template Library (ATL), normalerweise in der Visual Studio-Installation enthalten
  • Windows 11 SDK Version 10.0.22621.0 oder höher

Hinweis: Es wird nicht empfohlen, Tools von msys2 oder cygwin zu verwenden, um Qt WebEngine zu erstellen, da dies zu Erstellungsfehlern führen kann.

Linux

Unter Linux ist Clang oder GCC Version 10 oder höher erforderlich.

Qt WebEngine benötigt pkg-config, um die meisten seiner Abhängigkeiten zu erkennen. Die folgenden pkg-config Dateien sind erforderlich:

  • dbus-1
  • fontconfig

Wenn Qt für xcb konfiguriert wurde, sind auch die folgenden pkg-config Dateien erforderlich:

  • libdrm
  • xcomposite
  • xcursor
  • xi
  • xrandr
  • xscrnsaver
  • xtst

macOS

Unter macOS sind die folgenden Dateien erforderlich:

  • macOS 10.14 oder höher
  • Xcode 12.0 oder höher
  • macOS 11 SDK oder höher

Hinweis: Qt WebEngine kann nicht für den 32-Bit-Modus von macOS erstellt werden (unter Verwendung der macx-clang-32 mkspec ).

Verwendung früherer Qt-Versionen zum Erstellen Qt WebEngine

Die Erstellung von Qt WebEngine mit früheren Qt-Versionen (bis zur letzten LTS-Version) wird unterstützt. Das bedeutet, dass Qt WebEngine 6.4 mit Qt 6.2.x, Qt 6.3.x und Qt 6.4 gebaut werden kann.

Um eine frühere Qt-Version zur Erstellung der Qt Webengine zu verwenden:

  1. Laden Sie die qtwebengine-Quellen herunter.
  2. Führen Sie von der früheren Qt-Version aus qmake && make (&& make install) aus.

Mac App Store-Kompatibilität

Anwendungen, die Qt WebEngine verwenden, sind nicht mit dem Mac App Store kompatibel, weil:

  • Der Chromium-Teil des Codes verwendet mehrere private API-Methoden, die vom App Store verboten sind.
  • Anwendungen, die im App Store eingereicht werden, müssen mit aktivierter App-Sandbox-Funktion signiert sein. Die App-Sandbox-Funktion stört die Chromium-eigene Sandbox-Initialisierung, was dazu führt, dass Chromium nicht richtig initialisiert wird. Dies steht auch im Zusammenhang mit der Verwendung privater APIs. Darüber hinaus wird das eigenständige Chromium selbst nicht offiziell mit aktivierter App Sandbox getestet, und selbst wenn daran gearbeitet wird, die Beschränkungen des App Stores zu umgehen, würde dies nicht das korrekte Verhalten der Bibliothek garantieren.

macOS Airplay-Unterstützung auf MacBooks mit Dual-GPUs

Damit Qt WebEngine korrekt funktioniert, wenn von einem MacBook, das GPU-Umschaltung unterstützt, an ein AppleTV gestreamt wird, ist es wichtig, die Option NSSupportsAutomaticGraphicsSwitching zur Datei Info.plist des Programms hinzuzufügen, wobei der Wert auf YES gesetzt werden muss. Andernfalls kann es zu Rendering-Problemen kommen, wenn neue Web-Engine-Ansichtsinstanzen erstellt werden, nachdem Airplay ein- oder ausgeschaltet wurde.

Standard QSurfaceFormat OpenGL Profil Unterstützung

Wenn ein neuer Standard QSurfaceFormat mit einem geänderten OpenGL-Profil gesetzt werden muss, sollte dieser vor der Deklaration der Anwendungsinstanz gesetzt werden, um sicherzustellen, dass alle erstellten OpenGL-Kontexte das gleiche OpenGL-Profil verwenden.

Unter macOS, wenn der Standard QSurfaceFormat nach der Anwendungsinstanz gesetzt wird, beendet sich die Anwendung mit qFatal() und gibt eine Meldung aus, dass der Standard QSurfaceFormat vor der Anwendungsinstanz gesetzt werden sollte.

Sandboxing-Unterstützung

Qt WebEngine bietet Out-of-the-Box-Sandboxing-Unterstützung für Chromium-Renderprozesse.

Unter Linux müssen Sie die folgenden Einschränkungen beachten:

  • Der Kernel muss die Funktion der anonymen Namespaces unterstützen (Kernel-Version 3.8 oder höher). Unter Debian, Ubuntu und anderen von Debian abgeleiteten Distributionen ist diese Funktion jedoch standardmäßig deaktiviert. Sie kann eingeschaltet werden, indem /proc/sys/kernel/unprivileged_userns_clone auf 1 gesetzt wird.
  • Der Kernel muss die Funktion seccomp-bpf unterstützen (Kernelversion 3.5 oder höher).
  • Setuid-Sandboxen werden nicht unterstützt und sind daher deaktiviert.

Um Sandboxing explizit zu deaktivieren, verwenden Sie eine der folgenden Optionen:

  • Setzen Sie die Umgebungsvariable QTWEBENGINE_DISABLE_SANDBOX auf 1.
  • Übergeben Sie das Befehlszeilenargument --no-sandbox an die ausführbare Benutzeranwendung.
  • Setzen Sie QTWEBENGINE_CHROMIUM_FLAGS auf --no-sandbox.

Weitere Informationen finden Sie unter Verwendung von Befehlszeilenargumenten.

Speicheranforderungen in der Docker-Umgebung

Beim Ausführen von Qt Web Engine-Beispielen in einem Docker-Container und beim Durchsuchen von inhaltsintensiven Websites werden möglicherweise BUS-Fehler (SIGBUS) gemeldet. Dies wird in der Regel dadurch verursacht, dass Docker einen Container mit einem zu kleinen Speicherplatz (z. B. 64 MB) ausführt. Um dieses Problem zu beheben, vergrößern Sie den Speicherplatz.

Zugänglichkeit und Leistung

Qt WebEngine aktiviert die Unterstützung der Barrierefreiheit für Webseiten, wenn die folgenden Bedingungen erfüllt sind:

  • Qt Core Das QPA-Plugin ist mit aktivierter Unterstützung für Barrierefreiheit konfiguriert und erstellt.
  • Das QPA-Plugin wird vom Betriebssystem benachrichtigt, dass die Barrierefreiheit aktiviert werden soll. Dies geschieht zum Beispiel bei der Verwendung einer Screenreader-Anwendung unter Windows oder VoiceOver unter macOS.

Auf einigen alten Linux-Konfigurationen kann die Barrierefreiheit zu einer erheblichen Verlangsamung bei großen HTML-Seiten führen.

Aus diesem Grund kann die Unterstützung der Barrierefreiheit auf Qt WebEngine unter Linux deaktiviert werden, indem die Umgebungsvariable QTWEBENGINE_ENABLE_LINUX_ACCESSIBILITY auf 0 gesetzt wird.

Popups in Vollbildanwendungen unter Windows

Aufgrund einer Einschränkung im Windows-Compositor werden Anwendungen, die eine Vollbild-Web-Engine-Ansicht zeigen, Popups oder andere Fenster der obersten Ebene nicht korrekt angezeigt. Der Grund und die Umgehung dieses Problems wird in Fullscreen OpenGL Based Windows beschrieben.

Windows-Anwendungsmanifest

Ein Manifest ist eine XML-Datei, die beim Programmstart gelesen wird und Windows mitteilt, wie das Programm ausgeführt werden soll. Einige Funktionen von Qt WebEngine erfordern möglicherweise das Hinzufügen einer Manifestdatei, damit die Benutzeranwendung unter Windows korrekt funktioniert.

Die folgenden Ausschnitte zeigen die Struktur der Manifestdatei und wie sie in das Programm eingebettet werden kann.

Hinweis: Diese Codeschnipsel stammen aus dem WebEngine Quick Nano Browser Beispiel.

Die Manifestdatei definiert, welche Windows-Versionen die Anwendung unterstützt. httpUserAgent benötigt diese Informationen, um die richtige Windows-Version zu melden.

<?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>

Um die Datei in die ausführbare Datei einzubetten, fügen Sie sie zu den Quellen hinzu:

    ...
qt_add_executable(quicknanobrowser
    main.cpp
    utils.h
)

if(WIN32)
    set_property(
        TARGET quicknanobrowser
        APPEND PROPERTY
            SOURCES quicknanobrowser.exe.manifest)
endif()
    ...

Weitere Informationen finden Sie auf der Dokumentationsseite zum Anwendungsmanifest.

© 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.