Was ist neu in Qt 6.2
Neue und wiederhergestellte Module in Qt 6.2
Qt 6.2 fügt das folgende Modul hinzu:
- QtQuick.Dialogs - Ein QML-Modul, das native Dialoge mit einem Qt Quick Fallback auf Plattformen bietet, auf denen Qt kein natives Modul bereitstellt. FileDialog und FontDialog sind in dieser Version verfügbar.
Qt 6.2 führt die folgenden Module wieder ein, die in Qt 6.1 nicht vorhanden waren. Alle aufgeführten Module wurden auf Qt 6 und das CMake-Build-System portiert.
Eine detailliertere Liste der Änderungen an den einzelnen Modulen finden Sie unter Änderungen an Qt-Modulen in Qt 6.
- Qt Bluetooth
- Die Unterstützung für BlueZ 4 wurde entfernt.
- Das Win32-Backend wurde entfernt. Infolgedessen gibt es keine Unterstützung mehr für Qt Bluetooth mit Mingw-w64.
- Die QML-API wurde entfernt.
- QBluetoothTransferManager und verwandte Klassen wurden entfernt.
- Die Funktionalität in Bezug auf Pairing-Agenten wurde aus QBluetoothLocalDevice entfernt.
- Qt Multimedia
- Qt Multimedia Die öffentliche API besteht aus fünf großen Funktionsblöcken. Jede API wurde im Vergleich zu Qt 5 erheblich verändert:
- Geräteerkennung
- Audio auf niedriger Ebene
- Wiedergabe und Dekodierung
- Erfassung und Aufzeichnung
- Video-Ausgabe-Pipeline
- Derzeit unterstützte Backends:
- Linux: GStreamer
- Windows: WMF
- macOS/iOS: AVFoundation
- Android: MediaPlayer und Kamera-APIs
- Qt Multimedia Die öffentliche API besteht aus fünf großen Funktionsblöcken. Jede API wurde im Vergleich zu Qt 5 erheblich verändert:
- Qt NFC
- Die Unterstützung für Linux/NearD wurde entfernt.
- Unterstützung für iOS hinzugefügt.
- Qt Positioning
- Viele der Eigenschaften wurden bindbar gemacht.
- Umbenennung von QGeoPolygon::path() in QGeoPolygon::perimeter.
- QGeoLocation verwendet nun QGeoShape anstelle von QGeoRectangle als Begrenzungsbereich.
- Das Signal
error()
in mehreren Positionierungsklassen wurde inerrorOccurred()
umbenannt. - QGeoPositionInfoSourceFactoryV2 wurde entfernt, und QGeoPositionInfoSourceFactory unterstützt nun benutzerdefinierte Parameter für die erstellten Objekte.
- Die NMEA-Unterstützung wurde umgestaltet. Das Plugin serialnmea wurde in nmea umbenannt und unterstützt nun das Lesen des Eingabestroms von einem TCP-Socket oder einer Rohdatei. Die Eigenschaft
nmeaSource
wurde entfernt.
- Qt Remote Objects
- Das lokale Verbindungs-Backend unterstützt nun abstrakte Namensräume (dies ist eine Linux-spezifische Erweiterung), was durch die Verwendung des neuen
localabstract
Schemas in der URL erreicht wird. .rep
-Dateien unterstützen jetzt:- Klassen-Enums.
- QFlags.
- Mehrzeilige Kommentare (C-Stil).
- Enums und flags werden jetzt in POD-Typen und als Schlüssel für QMap und QHash Eigenschaften in
.rep
Dateien unterstützt.
- Das lokale Verbindungs-Backend unterstützt nun abstrakte Namensräume (dies ist eine Linux-spezifische Erweiterung), was durch die Verwendung des neuen
- Qt Sensors
- Die meisten QML-zugewandten Eigenschaften sind jetzt bindbar.
- Sensor::type und QSensor::type Eigenschaften sind nun als konstant markiert.
- Parameter zu QSensorBackend::sensorBusy() hinzugefügt, um auch den Busy-Status löschen zu können.
- Typedef für qtimestamp wurde gelöscht.
- Sensor
type
string insensorType
umbenannt. - Windows: Wir können jetzt die Windows 10 API anfordern, wodurch die Anzahl der unterstützten Sensoren erweitert wird.
- TI Sensor Tag als unterstützte Plattform wurde entfernt.
- Das Linux
sysfs
Backend wurde entfernt. - Die Unterstützung für Sensorgesten wurde entfernt (Eingaben sind hier willkommen: QTBUG-97066).
- Sensorfw als Plattform wurde entfernt, da Sensorfw selbst noch nicht auf Qt 6 portiert wurde.
- Sensortypen, die nur ein Sensorfw-Backend hatten (IRProximity, Lid und Tap) sind nicht mehr als unterstützt aufgeführt.
- Sensortypen ohne Backend wurden entfernt (Altimeter, Distance, und Holster).
- Qt Serial Bus
- QCanBusFactory wurde entfernt und QCanBusFactoryV2 wurde in QCanBusFactory umbenannt.
- QModbusRtuSerialSlave und QModbusRtuSerialMaster wurden umbenannt in QModbusRtuSerialServer und QModbusRtuSerialClient.
- Qt Serial Port
- Qt WebChannel
- QWebChannel Die Eigenschaften wurden bindungsfähig gemacht.
- Das Aktualisierungsintervall für die Eigenschaften von QWebChannel kann nun konfiguriert werden. Das Aktualisierungsintervall von 50ms bleibt der Standard.
- QWebChannel unterstützt nun Eigenschaftsaktualisierungen für BINDABLE-Eigenschaften. Allerdings bietet die Client-Seite keinen generischen Callback-Mechanismus, wenn die Host-Eigenschaft kein NOTIFY-Signal hat.
- Signale von Objekten, die in einem anderen Thread leben, werden nun korrekt behandelt(QTBUG-51366).
- Qt WebEngine
- Das Submodul für Qt Quick wurde von QtWebEngine in QtWebEngineQuick umbenannt.
- Mehrere Klassen wurden von QtWebEngineWidgets nach QtWebEngineCore verschoben, einschließlich QWebEnginePage.
- Einige Funktionen, die zuvor nur über eine Ableitung von QWebEnginePage zugänglich waren, sind jetzt über synchrone Signale zugänglich.
- Favicon API wurde zu QWebEngineProfile hinzugefügt, um Icons für bestimmte URLs zu suchen.
- Die neue Klasse QWebEngineLoadingInfo liefert mehr Details über Erfolg oder Misserfolg beim Laden.
- Qt WebSockets
- Qt WebView
Neue Funktionen in Qt 6.2
Qt Core Modul
- Funktionalität hinzugefügt:
- QByteArrayView::compare() hinzugefügt.
- Methoden QFlags::test(Any)Flag(s) hinzugefügt.
- QHashSeed hinzugefügt, um Hashing zu kontrollieren (Seeds sind jetzt size_t); dies soll qGlobalQHashSeed und qSetGlobalQHashSeed ersetzen.
- PRIxQTDATATYPE-Makros hinzugefügt, um die printf()-artige Formatierung ohne Casts oder Warnungen zu erleichtern.
- Viele Eigenschaften wurden bindbar gemacht.
- Grapheme-Cluster können jetzt Emojis verarbeiten.
- UNC-Pfade und Netzwerkfreigaben unter Windows werden nun konsistent behandelt.
- Die Behandlung des Start-Offset-Parameters, genannt
from
, in verschiedenenindexOf()
undlastIndexOf()
Methoden von Containern (hauptsächlich QString, QByteArray und deren Ansichten) ist nun kohärenter. - Wie QString::number() seit der Veröffentlichung von Qt 6.0, geben QByteArray::number()'s Überladungen für vorzeichenbehaftete ganzzahlige Typen nun einen Text mit einem Minuszeichen, gefolgt von dem absoluten Wert der Zahl, zurück, anstatt einen vorzeichenlosen Typ für alle Basen außer zehn zu erzwingen, wenn eine negative ganze Zahl und eine beliebige unterstützte Basis übergeben wird.
- QCalendar unterstützt nun die Konstruktion aus der ID eines benutzerdefinierten Backends.
- QChar QPoint und sind jetzt primitiv und nicht mehr nur verschiebbar. QPointF
- QCoreApplication::exit() ist jetzt, wie quit(), ein Slot (wie in der Dokumentation lange behauptet); dasselbe gilt für QEventLoop und QThread.
- QDateTime berücksichtigt nun die Zeitzonen im gesamten time_t-Bereich (sofern die Plattform solche Informationen liefert), anstatt den Bereich künstlich auf 1970 - 2037 zu beschränken.
- Das Value-Type-Verhalten von QFlags wurde überarbeitet und wird nun systematischer verwendet.
- Bei der Erstellung für C++20 ist QList (also auch QVector) jetzt ein
contiguous_iterator
, dascontiguous_range
erfüllt. - QLocalSocket::waitFor*()-Methoden wurden so gestaltet, dass sie Duplex-Operationen unter Windows unterstützen (wie sie es bereits unter Unix taten).
- Es wurden std::chrono Überladungen zu QLockFile Methoden hinzugefügt, wodurch unnötige Konvertierungen zwischen UTC und lokaler Zeit vermieden werden.
- QString kann nun aus char8_t erstellt werden (wenn verfügbar).
- Die Thread-Priorität von QThreadPool wurde konfigurierbar gemacht; die Threads teilen sich den Namen des Pools, wenn dieser einen hat.
- Viele Fehlerbehebungen, Aufräumarbeiten und Verbesserungen der Dokumentation.
Qt GUI Modul
- QImage wurden Fließkomma-Bildformate für 16-Bit- und 32-Bit-Fließkommazahlen hinzugefügt.
- Die Konvertierung von RGB-Bildern in Graustufenbilder oder das Malen von RGB-Farben auf Graustufenbilder ist jetzt gamma-korrigiert und erzeugt die Luminanzwerte des Eingabefarbraums.
- Das CSS-Attribut text-decoration-color wird jetzt in Rich-Text-Bereichen mit Unterstreichungen, Überstreichungen und Durchstreichungen unterstützt.
Qt Quick Modul
- Es wurde Unterstützung für die Auswahl von Zellen in einer TableView hinzugefügt, indem man ihr eine ItemSelectionModel zuweist.
Qt Quick Controls Baustein
- Ein neues Steuerelement wurde hinzugefügt; SelectionRectangle. Dieses Steuerelement kann verwendet werden, um Zellen in einem TableView mit Hilfe eines gestylten Auswahlrechtecks auszuwählen.
Qt Widgets Baustein
- PM_LineEditIconSize wurde hinzugefügt, ein neuer QStyle::PixelMetric Enum-Wert, mit dem Stile eine Standardgröße für Icons in einem QLineEdit definieren können.
- Die neue Methode QGraphicsSceneEvent::timestamp gibt den Zeitstempel des ursprünglichen Ereignisses zurück, falls zutreffend.
- QGraphicsSceneWheelEvent::phase QGraphicsSceneWheelEvent::pixelDelta und geben die jeweiligen Attribute des ursprünglichen zurück. QGraphicsSceneWheelEvent::isInverted QWheelEvent
Qt Network Modul
- QSslSocket
- TLS-Backends, die zuvor (in Qt 6.1) in Plugin-ähnliche Klassen umgewandelt wurden, wurden aus QtNetwork ausgelagert und als echte Plugins implementiert.
- Mehrere TLS-Backends können nun zur Laufzeit koexistieren, zum Beispiel OpenSSL und Schannel oder OpenSSL und SecureTransport.
- QNetworkInformation
- Einführung von isBehindCaptivePortal, einer neuen Eigenschaft, die verwendet werden kann, um festzustellen, ob der Benutzer mit einem Netzwerk mit einem unverschlüsselten Portal verbunden ist.
Qt QML-Modul
- Kernsprache
- Unterstützung für optionale Verkettung hinzugefügt.
- Als Casts hinzugefügt: Diese helfen hauptsächlich beim Tooling, können aber auch verwendet werden, um Code wie
return (obj instanceof Item) ? obj.width : 42
durch(obj as Item)?.width ?? 42
zu ersetzen.
- Eine öffentliche CMake-API für QML-Module wurde hinzugefügt:
qt_add_qml_module()
.- Kümmert sich um die Erzeugung von
qmldir
undqmltypes
. - Kann automatisch ein Plugin erstellen, wenn ein Plugin nur Typen registriert.
- Hat eingebaute Unterstützung für ein Linting-Target.
- Kümmert sich um die Erzeugung von
- QML-Werkzeuge
qmllint
- Es wurde eine granulare Einstellung für den Schweregrad von Warnungen hinzugefügt; Warnungen können vollständig deaktiviert werden, nur zur Information dienen oder zu einem Exit-Code ungleich Null führen.
- Es wurde eine Einstellungsdatei (.qmllint.ini) für die Konfiguration der Warnstufen auf Verzeichnisbasis hinzugefügt. Eine Standard-Einstellungsdatei kann mit
qmllint --write-defaults
erzeugt werden. - Warnungen können nun in Blöcken über Kommentare deaktiviert werden;
//qmllint enable/disable <warning-type1> <warning-type2...>
- Deutlich verbesserte Leistung beim Linting von Dateien, insbesondere beim Linting mehrerer Dateien mit vielen Importen.
- Unterstützung für JSON-Ausgaben zur Verwendung in Werkzeugen wurde hinzugefügt.
qmlformat
qmlformat
verwendet nun unsere neue qmldom-Bibliothek und sollte generell eine bessere Ausgabe erzeugen.
Qt Quick 3D Modul
- Unterstützung für instanziertes Rendering wurde hinzugefügt, eine optimierte Methode zum Zeichnen mehrerer Instanzen desselben Objekts mit unterschiedlichen Transformationen.
- 3D Particles wurde hinzugefügt, eine API zum Hinzufügen von Partikeleffekten zu 3D-Szenen. Dies beinhaltet eine Technologievorschau von Model Blend Partikeln.
- Hinzufügen von Qt Quick Eingabeereignissen für 2D-Objekte in 3D, sowohl in der Szene als auch in Texturen.
- Es wurde eine API für ray-based Picking von beliebigen Punkten in der Szene hinzugefügt.
- RuntimeLoader wurde hinzugefügt, wodurch es möglich ist, glTF2-Dateien zur Laufzeit zu laden.
- Parallax Occlusion Mapping wurde implementiert: Ermöglicht die Verwendung von Höhenkarten ohne die Kosten für das Hinzufügen von Geometrie.
- Implementierter Tiefenzeichnungsmodus für Materialien: Ermöglicht die Feinsteuerung des Tiefenrenderings für ein Material.
Qt Data Visualization Modul
- Behobener Hintergrund-Rendering-Modus.
- RenderDirectToBackground_NoClear wurde veraltet, da die Option, das Fenster nicht zu löschen, in Qt 6 nicht mehr möglich ist.
- Viele kleinere Fehlerkorrekturen.
Qt Charts Modul
- Es wurden weitere Markerformen zur Auswahl in QScatterSeries und QLegend hinzugefügt.
- In QXYSeries und QLegend wurde eine Light-Marker-Funktion hinzugefügt. Dies ist ein leichteres Rendering von Punkten.
- Es wurde die Möglichkeit hinzugefügt, Punkte in einer Serie über Methodenaufrufe in QXYSeries und QBarSet auszuwählen.
- Es wurde die Möglichkeit hinzugefügt, eine Farbe festzulegen oder eine benutzerdefinierte Lichtmarkierung zu verwenden, die für ausgewählte Punkte in QXYSeries verwendet werden kann.
- Es wurde die Möglichkeit hinzugefügt, eine Farbe für ausgewählte Balken in QBarSet festzulegen.
- Es wurde eine Funktion hinzugefügt, mit der eine Best-Fit-Linie in einem QXYSeries angezeigt werden kann.
- Es wurde eine Funktion hinzugefügt, mit der das Aussehen einzelner Punkte in QXYSeries angepasst werden kann. Diese Funktion ermöglicht die Einstellung der Sichtbarkeit, der Sichtbarkeit der Beschriftung und der Größe der einzelnen Punkte.
- Es wurde eine Methode sizeBy() zu QXYSeries hinzugefügt, die die Größe der Punkte in einer Serie entsprechend der übergebenen Werte anpasst.
- QXYSeries wurde eine Methode colorBy() hinzugefügt, die die Farbe der Punkte in einer Serie entsprechend der übergebenen Werte und eines Farbverlaufs anpasst.
- Eine neue Achsenklasse QColorAxis wurde hinzugefügt, um die Funktion colorBy() zu unterstützen, die eine Farbskala anzeigt.
- Es wurde die Möglichkeit hinzugefügt, das Abschneiden von Beschriftungen in Achsen zu deaktivieren.
- Verbesserte Leistung durch Zwischenspeicherung von kürzlich verwendeten Textgrenzen.
- Interaktive Unterstützung für QLegend wurde über eine setInteractive()-Methode hinzugefügt. Einmal aktiviert, kann die Legende mit einem Doppelklick abgetrennt werden. Sobald sie abgetrennt ist, kann die Legende gezogen und in der Größe verändert werden, und sie kann wieder an einer Seite des Diagramms befestigt werden, indem sie von der Kante weggezogen wird.
- Das Signal attachedToChartChanged() wurde zu QLegend hinzugefügt.
- Das Legendenbeispiel wurde aktualisiert.
Qt for Python
- Neue Beispiele, Tutorials und Videos zur DokumentationQt for Python hinzugefügt.
- Kompatibel mit Python 3.10rc2.
- Die Module QtDBus, QtNetworkAuth und QtBluetooth wurden hinzugefügt.
- Ein neues Shiboken-Feature, Opaque Containers, wurde hinzugefügt, um das Kopieren von C++-Containern in Python zu vermeiden, um sie zu verwenden.
- Sie können nun
qtpaths
anstelle vonqmake
verwenden, wenn Sie PySide aus dem Quellcode erstellen. - Unterstützung für std::function für einige der Methoden von QThreadPool wurde hinzugefügt.
- Neue QML-Funktionen sowie Unterstützung für qmlRegisterSingletonInstance wurden hinzugefügt.
Plattform-Änderungen
Technologie-Vorschau Plattformen
Windows auf ARM
- Windows auf ARM64 wurde als Technologievorschau-Plattform hinzugefügt.
- Unterstützt als Build-Ziel; noch keine Host-Unterstützung.
- Bekannte Einschränkungen:
- Noch keine Unterstützung für Qt WebEngine; fehlende offizielle Unterstützung für Chromium.
- Noch keine Unterstützung für SSL; fehlende offizielle OpenSSL-Unterstützung.
Desktop-Plattformen
macOS auf Apple Silizium
- Offizielle Unterstützung sowohl als Ziel- als auch als Host-Plattform hinzugefügt.
- Die Bibliotheken im Qt SDK werden als universelle Binärdateien erstellt.
- Bekannte Einschränkungen:
- Es fehlt die SSL-Unterstützung.
- postgresql und odbc Datenbank Plugins fehlen(QTBUG-93204).
- JIT-Unterstützung fehlt(QTBUG-93206).
Wayland-Client unter Linux
- Eine Touchpad-Pinch-Geste erzeugt nun Zoom und Rotate QNativeGestureEvents, wenn der Compositor sie über das pointer-gestures-unstable-v1 Protokoll sendet. Damit kann Qt Quick PinchHandler über Touchpad-Pinch-Gesten bedient werden. Es werden Zwei-, Drei- oder Vier-Finger-Gesten erkannt. Eine Geste des Typs Qt::PanNativeGesture kann durch Streichen mit drei oder vier Fingern erzeugt werden. Das Streichen mit zwei Fingern erzeugt wie bisher QWheelEvents.
Mobile Plattformen
Android
- Einige der Methoden, die zuvor im QtAndroid-Namensraum in QtAndroidExtras waren (z. B. sdkVersion() und context()), wurden nach QNativeInterface::QAndroidApplication verschoben.
- Eine neue Berechtigungs-API wurde in QCoreApplication implementiert.
- Die verbleibenden QtAndroidExtras APIs wurden als private APIs in qtbase belassen, bis plattformübergreifende Alternativen (für Intents, Services, etc.) vorhanden sind.
- Veralteter Ministro-Code wurde entfernt, da er von Android nicht mehr unterstützt wird.
- Die Datei AndroidManifest.xml wurde vereinfacht und enthält nun nur noch die für den Benutzer relevanten Tags, was die Wartbarkeit verbessert und die Unübersichtlichkeit reduziert.
- QCDebug() und Freunde verwenden nun die Kategorie als Tag in Android Logcat.
- Android Gradle-Plugin auf 4.1.3 aktualisiert.
- Ein Nicht-SDK-API-Fehler mit Style(QTBUG-71590) wurde behoben, obwohl Android Style für Widgets auf Android 9+ immer noch betroffen ist(QTBUG-96149).
- Die standardmäßige targetSdkVersion ist gemäß den Anforderungen des Google Play Store auf 30 gesetzt.
- Die Version der Build-Tools und die verwendete Plattformversion werden auf 30 gesetzt.
- QDesktopServices Benutzerdefinierte Handler sind nun aktiviert und ermöglichen beispielsweise die Arbeit mit Android App Links.
- Es wurden Informationen hinzugefügt, die es Anwendungen ermöglichen, die Quelle eines Intents zu bestimmen, ohne eine eigene Erweiterung von QtActivity zu erstellen.
- Die Importe für QML-Module wurden korrigiert und die Möglichkeit von mehreren QML-Root-Pfaden hinzugefügt.
- Vulkan-Builds auf Android behoben.
iOS
- Verbesserte CMake-Unterstützung.
- Bekannte Probleme:
- Fehlendes Standard-Startbildschirm-Storyboard.
- Benutzerdefinierte Bibliotheken lassen sich nicht installieren(QTBUG-95381).
Eingebettete Plattformen
Verfügbar unter der Qt for Device Creation Lizenz.
Boot to Qt
- Der Boot to Qt Stack wurde aktualisiert und verwendet nun Yocto 3.3 (Hardknott).
- Intel NUC10 (64bit i5 x86) als Referenzziel hinzugefügt.
- NVidia Jetson Tegra X2 wurde als Ziel hinzugefügt.
QNX
- QNX Version 7.1 und Ubuntu 20.04 als Host hinzugefügt.
- NXP iMX8QM als Referenzziel hinzugefügt.
INTEGRITY
- INTEGRITY Version 19.0.13 und Ubuntu 20.04 als Host hinzugefügt.
- Qualcomm Snapdragon 8155P als Referenzziel hinzugefügt.
WebOS
Qt 6.2 wurde verifiziert, um mit LG webOS OSE 2.13.1 unter Verwendung von Ubuntu 20.04 als Entwicklungshost und Raspberry Pi4 Hardware zu funktionieren.
Liste der API-Änderungen
Diese Seiten enthalten einen Überblick über die API-Änderungen in Qt 6.2:
© 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.