Was ist neu in Qt 6.4
Neue und wiederhergestellte Module in Qt 6.4
Qt 6.4 fügt die folgenden Module hinzu:
- Qt HTTP Server - Ein Modul zum Einbetten eines HTTP-Servers in Qt-Anwendungen. Dieses Modul befindet sich in der technischen Vorschau, API- und ABI-Stabilität sind nicht garantiert.
- Qt Quick 3D Physics - Ein High-Level-QML-Modul, das Qt Quick 3D physikalische Simulationsmöglichkeiten hinzufügt.
Qt 6.4 führt das Modul aus Qt 5 wieder ein. Qt TextToSpeech Modul aus Qt 5 wieder ein. Dieses Modul war in Qt 6.3 nicht vorhanden. Es verwendet jetzt das CMake-Build-System und funktioniert mit Qt 6.
Weitere Details zu den Änderungen an den einzelnen Modulen finden Sie unter Änderungen an Qt-Modulen in Qt 6.
Neue Funktionen in Qt 6.4
Qt Core Modul
- QLatin1StringView wurde als Alias für QLatin1String hinzugefügt. Dies ist nun der empfohlene Name, um auf eine Latin-1-String-Ansicht zu verweisen.
- Die Konstruktoren
QLatin1StringView(const char *, qsizetype)
undQLatin1StringView(const char *, const char *)
wurden nicht-explizit gemacht. - Der Literal-Operator
_L1
wurde hinzugefügt, um Latin-1 String- und Char-Literale im Qt::Literals::StringLiterals Namespace zu erzeugen. - Die Literaloperatoren
_s
und_ba
wurden hinzugefügt, um QString bzw. QByteArray Literale im Qt::Literals::StringLiterals Namespace zu erzeugen. Abgelehnt_qs
und_qba
zugunsten von_s
und_ba
. - Abgelehnt QString::count() und QByteArray::count(), die keine Parameter benötigen, um Verwechslungen mit den gleichnamigen Algorithmus-Überladungen zu vermeiden. Sie können durch die Methoden
size()
oderlength()
ersetzt werden. - QStringEncoder und QStringDecoder unterstützen nun alle von ICU unterstützten Codecs, wenn Qt mit aktivierter ICU-Unterstützung gebaut wird.
- In den Klassen für Android- und JNI-Entwicklung, QJniObject und QJniEnvironment, wurden Überladungen für callMethod, findMethod und ähnliche Methoden hinzugefügt. Es ist nun möglich, Java-Funktionen aufzurufen und native Methoden zu registrieren, ohne einen Signaturstring anzugeben.
- Die neue Template-Funktion QJniObject::construct() ermöglicht die Instanziierung einer Java-Klasse aus C++ ohne Angabe eines Typs oder Signaturstrings.
- QByteArray hat jetzt eine percentDecoded()-Instanzmethode als Alternative zum Aufruf der statischen Methode fromPercentEncoding() auf der Instanz.
- QTextStream unterstützt nun die Eingabe und Ausgabe von char16_t.
- QStringView hat jetzt eine localeAwareCompare()-Methode und kann zählen(), wie oft ein bestimmter Teilstring vorkommt.
- QDate kann nun aus verschiedenen std::chrono Jahr-Monat-Tag-Strukturtypen konstruiert werden, wenn verfügbar, und hat eine addDuration(), die std::chrono::days nimmt, wenn verfügbar.
- QDateTime Die Funktion addDuration(std::chrono::milliseconds) wurde ebenfalls hinzugefügt, zusammen mit Arithmetik zum Addieren oder Subtrahieren desselben Typs, einer Differenz von QDateTime -Werten, die zurückgegeben wird, und einigen statischen Pseudokonstruktoren, die verschiedene std::chrono-Typen annehmen, die einen Moment in der Zeit beschreiben.
- QTimeZone::fromStdTimeZonePtr(const std::chrono::time_zone *) hinzugefügt.
- QCalendarDie Konstruktion von 'by name' akzeptiert nun QAnyStringView.
Qt GUI Baustein
- QTextDocumentFragment::toMarkdown(), QTextDocumentFragment::fromMarkdown(), und QTextCursor::insertMarkdown() hinzugefügt.
Qt Quick Baustein
- Mehrere neue Eigenschaften und Funktionen wurden zu TableView hinzugefügt, die die Unterstützung für Tastaturnavigation und -auswahl, Zeilen- und Spaltenauswahl, Animationen, Unterzellenpositionierung und mehr verbessern.
- TreeView Das Modul unterstützt jetzt Auswahlen und hat eine breitere API für das rekursive Erweitern und Reduzieren von Knoten im Baum erhalten.
- QQuickWidget ist jetzt zusätzlich zu OpenGL mit allen unterstützten 3D-Grafik-APIs (Vulkan, Metal, Direct3D 11) funktionsfähig. Anwendungen müssen nicht mehr das Rendern mit OpenGL erzwingen, wenn sie QQuickWidget verwenden.
- Unterstützung für Arrays von kombinierten Bildsamplern in Shadern, die mit benutzerdefinierten Materialien verwendet werden, wurde hinzugefügt. Dies wird durch die neue Funktion QSGMaterialShader::combinedImageSamplerCount() und die erweiterte Semantik des bestehenden
texture
Arguments von QSGMaterialShader::updateSampledImage() unterstützt. - Es wurde Unterstützung für das Ändern des Polygonrasterungsmodus von
solid
zuline
in QSGMaterialShader::GraphicsPipelineState hinzugefügt. (nur verfügbar, wenn die verwendete 3D-API dies unterstützt) - ShaderEffectSource.format und layer.format waren in früheren Qt 6 Versionen nicht nützlich, wobei die alten Werte in der Praxis ignoriert wurden. Dies ist nun dokumentiert und neue, tatsächlich nützliche Werte wurden eingeführt, insbesondere um die Anforderung von Fließkommatexturen (FP16 oder FP32) anstelle von RGBA8 zu ermöglichen, falls gewünscht.
- QQuickRenderTarget::fromPaintDevice() wurde hinzugefügt, um die Ausgabe von QQuickWindow auch über das
software
Backend umzuleiten. - Es wurden Überladungen in QQuickRenderTarget hinzugefügt, die die Angabe des nativen Formats der Textur oder des Bildobjekts ermöglichen. Dies ist in einigen fortgeschrittenen Anwendungsfällen relevant, wenn man mit nativen Texturen arbeiten muss, die nicht RGBA8 sind. Beachten Sie, dass nur native Formate akzeptiert werden, die von der Rendering-Infrastruktur von Qt unterstützt werden.
- setMirrorVertically() wurde zu QQuickRenderTarget hinzugefügt, was es erlaubt, den Qt Quick Renderer aufzufordern, seine Matrizen zu ändern, um vertikal gespiegelte Ergebnisse zu erhalten, wenn das 3D API-basierte Rendering in eine Textur umgeleitet wird.
- Qt Quick Windows versucht nun, die Software-Rasterisierungsplattform von Direct 3D (WARP) zu verwenden, falls das primäre Grafikgerät nicht mit Qt kompatibel ist, ohne auf das manuelle Setzen von Umgebungsvariablen zurückgreifen zu müssen.
- Es wurde eine einfache Heuristik zur
threaded
Rendering-Schleife des Qt Quick Scenegraphs hinzugefügt, um fehlerhaftes vsync-basiertes Throttling zu erkennen. Wenn Frames zu schnell gerendert/präsentiert werden, ohne den Render-Thread zu blockieren, wird nun automatisch auf den regulären Timer-basierten Ansatz zur Ausführung von Animationen umgeschaltet, wodurch verhindert wird, dass QML-Animationen zu schnell laufen. - FrameAnimation für benutzerdefinierte Animationen hinzugefügt. Ermöglicht die Ausführung von benutzerdefinierten Skripten in Synchronisation mit den Animationsrahmen.
Qt Quick Controls Modul
- Ein neuer nativ aussehender Stil für iOS, iOS Style, wurde als Tech Preview hinzugefügt.
- TreeViewDelegate hat drei neue Eigenschaften, die beschreiben, ob es aktuell, ausgewählt oder im TreeView hervorgehoben ist.
Qt Quick Dialogs Modul
- ColorDialog wurde hinzugefügt. Dies ist ein nativer Dialog auf Plattformen, die ihn unterstützen, und ein nicht-nativer Qt Quick Dialog auf anderen Plattformen.
Das nicht-native Dialogfeld unterstützt alle nicht-nativen Stile: Basic, Fusion, Imagine, Material und Universal.
Qt Widgets Das Modul
- QFormLayout hat neue isRowVisible() und setRowVisible() Memberfunktionen, mit Überladungen, die das Ein- und Ausblenden von Zeilen nach Index, Eingabewidget oder Zeilenlayout ermöglichen.
- QKeySequenceEdit hat eine neue Eigenschaft clearButtonEnabled. Verwenden Sie diese, um zu kontrollieren, ob das Widget einen Clear-Button anzeigt, der es dem Benutzer erlaubt, die Eingabe zu löschen.
- QWizard hat einen neuen Slot, setCurrentId, der es Anwendungen ermöglicht, zu einer Seite zu wechseln, ohne die Seiten zwischen der aktuellen Seite und dem Ziel zu besuchen.
Qt Network Modul
- QSslServer wurde hinzugefügt. Dies vereinfacht die Erstellung eines Servers, der ausschließlich über TLS kommuniziert.
- QNetworkInformation hat jetzt loadBackendByFeatures(Features) und loadBackendByName(QStringView), die die entsprechenden überladenen load(Features/QStringView) Funktionen ersetzen sollen, die jetzt als veraltet markiert sind.
Qt Test Modul
- QTestEventLoop::enterLoopMSecs() verwendet jetzt einen PreciseTimer, wenn der Timeout weniger als eine Sekunde beträgt.
- Benutzerdefinierte QTest::compare()-Implementierungen sollten nun alle Aufrufe von QTest::compare_helper() überarbeiten, um eine der beiden neuen Überladungen anstelle der alten zu verwenden, die nun als veraltet gekennzeichnet ist (um nur die Strings zu erzeugen, die Werte in einem Fehlerbericht darstellen, wenn die Prüfung tatsächlich fehlschlägt).
- QAbstractItemModelTester::setUseFetchMore() hinzugefügt.
- Neue Makros QCOMPARE_{EQ,NE,GT,GE,LT,LE}() unterstützen Vergleiche mit ähnlichen Berichten wie die von QCOMPARE(). Das EQ-Makro führt exakte Vergleiche durch, ohne die Anpassungen von QCOMPARE(). Sie verfügen auch über die üblichen QTRY_COMPARE_*() und QTRY_COMPARE_*_WITH_TIMEOUT() Varianten.
Qt QML-Modul
- QML-Sprache
- Sie können jetzt benutzerdefinierte Wertetypen mit Namen registrieren. Das heißt, das Argument für QML_VALUE_TYPE wird nicht mehr ignoriert. Es muss klein geschrieben werden. Einmal registriert, können Sie Eigenschaften Ihrer eigenen Wertetypen in QML deklarieren.
- Sie können jetzt jeden benannten Wertetyp in einer Liste in QML speichern. Zum Beispiel ist list<rect> in QML wie ein QList<QRectF> in C++. Damit entfällt die Notwendigkeit, var für solche Eigenschaften zu verwenden oder ihre Elemente in Objekte zu verpacken.
- Mit dem neuen pragma ComponentBehavior können Sie festlegen, ob in einer QML-Datei definierte Komponenten außerhalb ihres Erstellungskontexts verwendet werden können. Wenn nicht (pragma ComponentBehavior: Bound), dann kann Qt Quick Compiler Ihren Code besser optimieren.
- QML-Typ-Compiler (qmltc)
- Erweiterte QML-Sprachabdeckung
- QML-Skript-Compiler (qmlsc, qmlcachegen)
- Verschiedene Operationen auf Listen von Werttypen werden jetzt nach C++ kompiliert.
- Toter Code und tote Speicher werden nun aggressiver optimiert.
- Typkonvertierungen finden nun an der Stelle statt, an der ein Wert geschrieben wird, nicht an der Stelle, an der er gelesen wird. Wenn der Wert mehrfach gelesen wird, ist dies schneller.
- QML-Linter (qmllint)
- QML Language Server (qmlls)
- Unterstützung für Vervollständigungen hinzugefügt
- Code-Aktion für einige Linter-Warnungen/Hinweise hinzugefügt
- Ausführbare Datei nach libexec verschoben
- CMake API aufgeräumt:
- qt_target_compile_qml_to_cpp(), das zum Aufrufen des QML-Typ-Compilers verwendet wurde, ist veraltet. Seine Funktionalität wurde in qt_add_qml_module() integriert .
Qt Quick 3D Modul
- Eine Vorschau auf die Unterstützung des Lightmap-Backens wurde hinzugefügt. Dies bietet eine statische globale Beleuchtungslösung mit Lightmaps, die mit Raytracing vorgeneriert werden. Siehe Lightmaps und globale Beleuchtung für Details.
- SpecularGlossyMaterial wurde hinzugefügt, um die Verwendung des Specular/Glossiness-Workflows anstelle von Metalness/Roughness zu ermöglichen.
- Der Typ LineParticle3D wurde hinzugefügt, der die Erstellung von linienförmigen Sprite-Partikeln ermöglicht.
- Die Eigenschaft Model.castsReflection wurde hinzugefügt, um zu steuern, ob ein Modell von Reflexionssonden gerendert wird und ob es in Reflexionen zu sehen ist. Die gleiche Eigenschaft wurde auch für sprite particles eingeführt.
- Die Eigenschaft ReflectionProbe.boxOffset wurde hinzugefügt, um die Box relativ zur Position der Sonde zu verschieben, ohne die Position des Erfassungspunkts zu beeinflussen.
- Die Eigenschaft ReflectionProbe.debugView wurde hinzugefügt, um einen Würfel anzuzeigen, der die Sondenbox visualisiert.
- HeightFieldGeometry wurde hinzugefügt, um die Erstellung einer Höhenfeldgeometrie aus einer Bilddatei zu ermöglichen.
- CubeMapTexture wurde hinzugefügt, um benutzerdefinierte Materialien und Nachbearbeitungseffekte zu ermöglichen, die mit Cube-Map-Texturen in den Shadern arbeiten. Die Eingabe ist entweder ein
.ktx
Container mit Bilddaten für alle 6 Flächen oder 6 einzelne Bilddateien. - Es wurde Unterstützung für das Rendern einer Skybox aus einer Cubemap anstelle der Light Probe hinzugefügt. Dies kann durch Setzen des Hintergrundmodus SceneEnvironment.SkyBoxCubeMap angefordert werden.
- ProceduralSkyTextureData wurde hinzugefügt, um prozedural eine HDR-Lichtsonde oder eine Skybox-Textur zu erzeugen.
- Verbessertes Schatten-Rendering für Punkt- und Spot-Lichter.
- Die Eigenschaft renderFormat wurde zu View3D hinzugefügt, um die Angabe des Formats der Hintergrundtextur zu ermöglichen, wenn View3D den (standardmäßigen) Offscreen-Rendermodus verwendet. Die verfügbaren Werte sind die gleichen wie bei ShaderEffectSource.format (das selbst auch in 6.4 überarbeitet wurde). Dies ermöglicht die Verwendung von Fließkommatexturen anstelle des Standard-RGBA8.
- Die Unterstützung für den Import von UIP-Dateien wurde entfernt. Das Mapping von alten Qt 3D Studio Features auf Qt Quick 3D war schon in früheren Versionen problematisch. Daher wurde in Qt 6.4 die Unterstützung für
.uip
Dateien aus dembalsam
Tool entfernt.
Qt-Verbindungsmodul
- QNdefMessage wird nicht mehr exportiert. Diese Klasse erbt QList öffentlich, aber QList ist nicht dafür gedacht, von einer exportierten Klasse geerbt zu werden.
Warnung: Dies ist nicht abwärtskompatibel, aber dies wird zukünftige BC-Brüche verhindern.
- In Qt Bluetooth werden verschiedene Fehler-Enums um neue Fehlercodes erweitert, die einen Fehler aufgrund fehlender Berechtigungen darstellen. Derzeit werden diese Codes auf Android und macOS/iOS verwendet. Siehe QBluetoothLocalDevice::MissingPermissionsError als Beispiel.
Qt WebEngine Modul
- HTML5-Dateisystem-Zugriffs-API hinzugefügt, gesteuert durch QWebEngineFileSystemAccessRequest
- QWebEngineLoadingInfo verbesserte Fehlercodes, insbesondere für HTTP-Fehler
- QWebEngineView::setPage() funktioniert jetzt auf bereits geladenen Seiten
- QWebEngineSettings::NavigateOnDrop hinzugefügt, um die Deaktivierung der Navigation beim Ziehen und Ablegen von URLs zu ermöglichen
- QWebEngineUrlRequestInfo::ResourceTypeWebSocket Abfangen von Websocket-Verbindungen möglich
Plattform-Änderungen
WebAssembly
Qt wird jetzt vollständig von der WebAssembly-Plattform unterstützt. Weitere Informationen finden Sie in der Plattformdokumentation unter Qt für WebAssembly.
Mobile Plattformen
Android
- Gradle wurde auf 7.4.2 und Android Gradle Plugin auf 7.2.1 aktualisiert.
- NDK auf r23b (23.1.7779620) aktualisiert.
- CMake-Variablen QT_ANDROID_SIGN_APK und QT_ANDROID_SIGN_AAB hinzugefügt, um signierte Pakete direkt aus CMake zu erstellen.
- Android Accessibility kennt nun Scroll-Ereignisse.
- Die Ladegeschwindigkeit von Assets für Android-Apps wurde verbessert.
Eingebettete Plattformen
Boot to Qt
- Boot to Qt Stack wurde aktualisiert, um Yocto 4.0.3 (kirkstone) zu verwenden.
- NXP i.MX8M Plus LPDDR4 EVK wurde als neues Referenzgerät hinzugefügt.
QNX
- Unterstützung hinzugefügt für Qt Multimedia.
WebOS
- Qt 6.4 wurde für die Zusammenarbeit mit LG webOS OSE 2.18.0(Qt für webOS) verifiziert.
Liste der API-Änderungen
Diese Seiten enthalten einen Überblick über die API-Änderungen in Qt 6.4:
© 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.