Die Änderungen an Qt WebEngine
Qt 6 sind das Ergebnis des bewussten Bemühens, das Framework effizienter und benutzerfreundlicher zu gestalten.
Wir versuchen, die Binär- und Quellcodekompatibilität für alle öffentlichen APIs in jeder Version aufrechtzuerhalten. Aber einige Änderungen waren unvermeidlich, um Qt zu einem besseren Framework zu machen
In diesem Thema fassen wir diese Änderungen in Qt WebEngine zusammen und geben Anleitungen zu deren Handhabung.
Verschobene Klassen
Das Modul Qt WebEngine
wurde in das Modul Qt WebEngineQuick umbenannt, um nicht mit dem Namen des Supermoduls zu kollidieren und um mit anderen Quick-Modulen konsistent zu sein.
Wenn Sie Ihre Qt Quick Anwendung portieren, denken Sie bitte daran, den neuen Modulnamen in Ihrer qmake Projektdatei zu verwenden.
QT += webenginequick
Klassen von Qt WebEngineWidgets nach Qt WebEngineCore verschoben
Mehrere Klassen wurden von Qt WebEngineWidgets nach Qt WebEngineCore verschoben, wenn sie nicht das Widgets-Modul verwendet haben. In den meisten Fällen sollte diese Änderung quellkompatibel sein, es sei denn, Sie haben den Modulnamen in den Include-Header aufgenommen, in diesem Fall müssen Sie Ihre Includes aktualisieren.
Mit minimalen Änderungen verschobene Klassen
- QWebEngineHistory
- QWebEngineProfile
- QWebEngineScript
- QWebEngineScriptCollection
- QWebEngineClientCertificateSelection
- QWebEngineSettings
- QWebEngineFullScreenRequest
QWebEngineCertificateError
wurde zwischen QML- und C++-Versionen vereinheitlicht, so dass beide nun über Methoden der Klasse akzeptiert oder abgelehnt werden.
QWebEngineContextMenuData
Wurde nach Core verschoben und in QWebEngineContextMenuRequest umbenannt.
QWebEngineDownloadItem
Wurde nach Core verschoben und in QWebEngineDownloadRequest umbenannt.
QWebEnginePage
wurde nach Core verschoben, und die API, die auf QWebEngineView oder QPrinter funktionierte, wurde verschoben und kann jetzt nur noch über QWebEngineView aufgerufen werden. Siehe Geänderte API.
Klassen wurden von Qt WebEngineQuick nach Qt WebEngineCore verschoben
WebEngineNavigationRequest
Ist jetzt QWebEngineNavigationRequest und auch über die C++ API zugänglich, wobei eine informativere Variante von QWebEnginePage::acceptNavigationRequest() hinzugefügt wurde.
WebEngineNewViewRequest
Ist jetzt WebEngineNewWindowRequest und QWebEngineNewWindowRequest und auch über die C++-API zugänglich, wobei eine informativere Variante von QWebEnginePage::createWindow() hinzugefügt wurde.
Geänderte API
C++
QWebEnginePage::certificateError()
ist jetzt ein Signal anstelle einer abgeleiteten Methode. Die Fehler werden über Methoden der Klasse QWebEngineCertificateError entweder akzeptiert oder zurückgewiesen.
QWebEnginePage::print()
wurde nach QWebEngineView::print() verschoben und nimmt kein Callback-Argument mehr an, sondern signalisiert stattdessen die Beendigung mit QWebEngineView::printFinished(). Es war nie möglich, zwei aktive Druckaufträge gleichzeitig zu haben.
QWebEnginePage::view()
wurde entfernt, da QWebEnginePage und QWebEngineView jetzt in verschiedenen Modulen sind. Auf die zu einer Seite gehörende Ansicht kann mit dem statischen Helfer QWebEngineView::forPage() zugegriffen werden.
QWebEngineProfile::defaultProfile()
wurde entfernt. Das Standardprofil ist nun ein Off-the-Record-Profil und wird nur verwendet, wenn ein QWebEnginePage ohne explizites Profil erstellt wird. Um ein Qt 5 ähnliches Verhalten beizubehalten, erstellen Sie ein globales Profil mit dem Namen "Default" und verwenden Sie es bei der Erstellung jedes QWebEnginePage.
QML
WebEngineNavigationRequest
Die Navigationsanfragen werden nun wie andere Anfrageobjekte mit den Methoden accept() oder reject() angenommen oder abgelehnt.
WebEngineNewViewRequest
Wurde umbenannt in WebEngineNewWindowRequest.
Geändertes Verhalten
Standard-Profil
Das Standardprofil ist nun nicht mehr in der Aufzeichnung enthalten. Um ein Standard-Browserprofil mit Disk-Cache und Cookies zu haben, empfehlen wir, ein eigenes Profil zu erstellen und dieses explizit zu verwenden.
QRC-Schema
Es kann nicht mehr standardmäßig von benutzerdefinierten Schemata aus zugegriffen werden, noch kann es direkt auf lokale Inhalte zugreifen. Wenn das Qt 5-Verhalten benötigt wird, kann es wiederhergestellt werden, indem das qrc-Schema wie ein benutzerdefiniertes URL-Schema registriert wird und die Zugriffsflags CorsEnabled und LocalAccessAllowed gesetzt werden.
QWebEngineUrlScheme qrcScheme(QByteArrayLiteral("qrc")); qrcScheme.setFlags(QWebEngineUrlScheme::SecureScheme | QWebEngineUrlScheme::LocalAccessAllowed | QWebEngineUrlScheme::CorsEnabled | QWebEngineUrlScheme::ViewSourceAllowed); QWebEngineUrlScheme::registerScheme(qrcScheme);
OCSP Zertifikatswiderrufsprüfung
In Qt 5 konnte OCSP unter Linux mit QWebEngineProfile::setUseForGlobalCertificateVerification(true) auf QWebEngineProfile aktiviert werden. Dies wurde in Qt6 entfernt, da diese spezielle Form von OCSP als schlecht angesehen wird. Mit Qt 6.2 wurde noch keine neue Methode zur Überprüfung widerrufener Zertifikate unter Linux hinzugefügt.
© 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.