Was ist neu in Qt 6.7
Neue Funktionen in Qt 6.7
Qt Core Modul
- QSpan, Qt's Neuimplementierung von C++20 std::span, wurde hinzugefügt.
- Die Klassen Qt::strong_ordering, Qt::weak_ordering und Qt::partial_ordering wurden hinzugefügt, die eine C++17-kompatible Implementierung der Klassen
std::*_ordering
darstellen. - Hilfsmakros hinzugefügt, um relationale Operatoren in Qt-Klassen bequem zu implementieren. Diese Makros bieten operator<=>() in C++20-Builds, und greifen auf alle sechs relationalen Operatoren in C++17-Builds zurück.
- Diese Hilfsmakros wurden auf die Klassen QDate, QTime, QDateTime, QTimeZone und qfloat16 angewendet.
- Neue Klasse QAtomicScopedValueRollback hinzugefügt.
- Qt::Key_micro hinzugefügt, um das falsch benannte Key_mu zu ersetzen: es ist das Mikrozeichen U+00B5, nicht der griechische Buchstabe mu, U+03BC oder U+039C.
- QLocaleDie Funktionen name(), bcp47Name() und uiLanguages() erlauben es dem Aufrufer nun, das Trennzeichen zwischen Tags in Namen anzugeben.
- QLocale lokalisiert nun (soweit möglich) die Zeitzonenteile von formatierten Datumsangaben.
- Das Parsen von zweistelligen Jahreszahlen (und Datumsangaben) erlaubt es dem Aufrufer nun, das Jahrhundert zu bestimmen, in dem diese Jahre ausgewählt werden.
- QCalendar hat jetzt ein matchCenturyToWeekday(), um das Parsen von zweistelligen Jahren zu unterstützen.
- QDateTime akzeptiert nun TransitionResolution-Parameter, die dem Aufrufer die Kontrolle darüber geben, wie Zeitzonenübergänge aufgelöst werden. Die Standardauflösung eines Datums in einer Lücke ist jetzt gültig, aber seine time() und möglicherweise date() entsprechen jetzt dem, was toMSecsSinceEpoch() meldet, und nicht dem, wonach gefragt wurde.
Qt D-Bus Modul
- Der veraltete <qdbusmacros.h> Header wurde entfernt. Verwenden Sie stattdessen <qtdbusglobal.h>.
- Die neue Funktion QDBusAbstractInterface::setInteractiveAuthorizationAllowed() erlaubt es, das
ALLOW_INTERACTIVE_AUTHORIZATION
Flag für asynchrone Aufrufe zu setzen.
Qt Graphs Modul
Qt Graphs3D
- Data api erfordert nicht die Erstellung jedes Datenelements im Heap-Speicher.
- Render-to-Image-Funktionalität hinzugefügt.
Qt Graphs2D
- Technologievorschau für 2D-Diagramme.
- Enthält erste Unterstützung für Balken-, Linien- und Streudiagramme.
Qt GRPC Modul
- Hinzufügen der Funktionalität zur Verwendung von Interceptoren zur Anpassung des Verhaltens von QtGRPC-Aufrufen und -Streams. Jetzt können Sie QGrpcClientInterceptor unterordnen und die gewünschten Abfangmethoden überschreiben.
- Die Klassen QGrpcServerStream, QGrpcClientStream und QGrpcBidirStream wurden eingeführt. Diese werden verwendet, um Client-, Server- bzw. bidirektionale Streaming-Aufrufe zu ermöglichen.
Hinweis: Das Modul Qt GRPC befindet sich in der Technologievorschau.
Qt GUI Modul
- Es wurden QIconEngine -Implementierungen hinzugefügt, die den Zugriff auf die nativen Symbolbibliotheken unter Windows 10 und 11, macOS und iOS sowie Android ermöglichen.
- Neue Ereignistypen QEvent::ChildWindowAdded und QEvent::ChildWindowRemoved mit einer entsprechenden Klasse QChildWindowEvent wurden hinzugefügt, um Fenster zu informieren, wenn Unterfenster hinzugefügt und entfernt werden.
- Ermöglicht das Laden variabler Anwendungsschriften auf allen Plattformen (erfordert DirectWrite oder FreeType Backend unter Windows).
- QFont hat neue APIs für die Arbeit mit variable fonts.
- Der neue Typ QFont::Tag kann verwendet werden, um Achsen mit den neuen APIs für die Unterstützung variabler Schriftarten und mit support for typographical features zu spezifizieren, das als vorläufige API in Qt 6.6 eingeführt wurde und nun fertiggestellt ist.
Qt Multimedia Modul
- Das FFmpeg-Multimedia-Backend ist jetzt dynamisch mit FFmpeg unter Windows verknüpft. Vorgefertigte FFmpeg-Binärdateien werden über den Online-Installer bereitgestellt. Windows-Anwendungen, die das FFmpeg-Backend verwenden, müssen nun FFmpeg-Binärdateien als Teil ihres Installationsprogramms mit windeployqt bündeln.
- Die neuen Eigenschaften MediaPlayer::autoPlay und Video::autoPlay können verwendet werden, um die Wiedergabe automatisch zu starten, wenn eine Medienquelle festgelegt wurde.
- Die QCameraDevice hat eine neue Eigenschaft correctionAngle. Diese Eigenschaft stellt den Drehwinkel dar, der benötigt wird, um die physische Kameradrehung der Kamera im Vergleich zu ihrer nativen Ausrichtung zu kompensieren.
Qt Network Modul
- Die Klasse QHttpHeaders wurde hinzugefügt, um HTTP-Header darzustellen.
- Unterstützung von std::chrono für die Einstellung von Übertragungszeitüberschreitungen mit QNetworkRequest und QNetworkAccessManager hinzugefügt.
- Klasse QNetworkRequestFactory hinzugefügt (Technische Vorschau). Die Klasse ist eine Komfortklasse für die Erstellung von Netzwerkanfragen.
- QRestAccessManager und QRestReply hinzugefügt (Technische Vorschau). Bei den Klassen handelt es sich um Komfort-Wrapper, die auf RESTful-Anwendungsfälle abgestimmt sind.
Qt OPC UA Modul
- Die neuen Klassen QOpcUaHistoryEvent und QOpcUaHistoryReadEventRequest wurden hinzugefügt, um das Lesen von historischen Ereignissen zu ermöglichen.
- Hinzufügen der neuen Klasse QOpcUaGenericStructHandler und zugehöriger Datenklassen zur Unterstützung der Dekodierung und Kodierung von generischen OPC UA Strukturen.
Qt Protobuf Modul
- Hinzufügen des neuen Serializers, der JSON-Serialisierungs- und Deserialisierungsfunktionen für QProtobufMessage-basierte Klassen implementiert.
- Unterstützung von 'optionalen' Feldern im Qt Protobuf Generator wurde hinzugefügt. Wenn das Nachrichtenfeld als 'optional' markiert ist, erhält es die Methoden clear<fieldName> und has<fieldName> zusätzlich zu den normalen Feldmethoden.
- Enum-Felder, die vom Qt Protobuf Generator generiert werden, behalten nun die Groß- und Kleinschreibung des ersten Buchstabens bei. Zuvor hat der Generator die generierten Enum-Feldnamen groß geschrieben.
Hinweis: Das Qt Protobuf Modul befindet sich in der Technologievorschau.
Qt QML-Modul
- Neue Funktionen zu QML Language Server hinzugefügt: Formatierung, semantische und Code-Snippet-Vervollständigung, Umbenennung von Verwendungen und Einstellung der Dateierzeugung in CMake über QT_QML_GENERATE_QMLLS_INI.
- Der Übersetzungskontext einer QML-Datei kann über
pragma Translator
- Sie können nun QML_CONSTRUCTIBLE_VALUE und QML_STRUCTURED_VALUE auf Werttypen deklarieren und Objekte solcher Typen aus QML konstruieren. Eigentlich konnte man das schon seit Qt 6.5, aber jetzt ist es offiziell unterstützt.
Qt Quick Compiler
- Bindungen und Funktionen, die Eigenschaften von Werttypen schreiben, können nun nach C++ kompiliert werden.
- Optionale Verkettungen können jetzt nach C++ kompiliert werden
- for..in Iteration kann jetzt in C++ kompiliert werden
Qt Quick Modul
- Hinzufügen der Eigenschaft TextEdit.textDocument.source zum Laden aus einer Datei, save() und saveAs() Funktionen zum Schreiben. Diese sollen XMLHttpRequest in Anwendungsfällen der Textverarbeitung ersetzen.
- Die Eigenschaft cursorSelection wurde zu TextEdit und TextArea hinzugefügt, um die Eigenschaften des ausgewählten Textes zu prüfen und zu ändern.
- Das Texteditor-Beispiel wurde aktualisiert, um diese Funktionen zu demonstrieren.
- Es wurde ein neuer Text-Renderer hinzugefügt, der bessere Ergebnisse beim Rendern von sehr großem Text liefert. Er kann ausgewählt werden, indem renderType auf
Text.CurveRendering
gesetzt wird. - Die Textklassen haben neue APIs für die Arbeit mit variable fonts erhalten.
- Rechtecke können jetzt verschiedene radii on each corner haben.
- Vorläufige Unterstützung für das Einbetten von QWindows in die Qt Quick Szene wurde hinzugefügt, zusammen mit einer Parent-Eigenschaft für Window, um das Setzen eines visuellen Parents für ein Window zu ermöglichen.
- Die Eigenschaften focusReason und focusPolicy von Control wurden nach Item verschoben.
- QQuickRhiItem wurde als moderne Alternative zu QQuickFramebufferObject hinzugefügt. Dies ermöglicht die Erstellung von benutzerdefinierten QQuickItem Objekten, die 3D-Grafiken über eine beliebige hardwarebeschleunigte Grafik-API rendern, die von der Rendering-Hardware-Schnittstelle von Qt unterstützt wird, d.h. OpenGL, Vulkan, Direct3D oder Metal.
- Es wurde ein neues QQuickRenderControl-Beispiel hinzugefügt, das QRhi verwendet und somit vollständig portabel ist und mit allen unterstützten 3D-APIs funktioniert. Es zeigt, wie man den Inhalt von Qt Quick plattformübergreifend in eine Textur umleiten kann.
Qt Quick Controls Modul
- Die folgenden Funktionen, die stark typisierte Argumente annehmen, wurden hinzugefügt:
- pushItem()
- pushItems()
- popToItem()
- popToIndex()
- popCurrentItem()
- replaceCurrentItem()
- Im Gegensatz zu den Funktionen push, pop und replace können diese mit dem QML-Compiler nach C++ kompiliert werden.
Qt Quick Shapes-Modul
- Der Curve Renderer und die zugehörige Eigenschaft preferredRendererType werden nun offiziell unterstützt und gelten nicht mehr als experimentell.
- Die Eigenschaft pathHints zur Charakterisierung von Formen wurde hinzugefügt. Diese kann vom Renderer verwendet werden, um die Verarbeitung und das Rendering der Pfade zu optimieren.
- Formen haben jetzt eine implizite Größe, die auf dem Begrenzungsrechteck der Form basiert, und werden in Layouts entsprechend positioniert. Die Eigenschaften fillMode, horizontalAlignment und verticalAlignment wurden hinzugefügt, um zu ändern, wie sich die Form verhält, wenn dem Element eine explizite Größe gegeben wird, die von der impliziten Größe abweicht.
- Das Werkzeug svgtoqml wurde als Technologievorschau hinzugefügt. Es handelt sich dabei um ein Tool, mit dem eine SVG-Datei in QML-Code umgewandelt werden kann. Es wird derzeit als experimentell betrachtet und unterstützt nur eine Teilmenge dessen, was Qt SVG unterstützt.
Qt Quick Timeline Modul
- Das Untermodul QtQuick.Timeline.BlendTrees fügt neue APIs hinzu, um das Überblenden mehrerer Timeline-Animationen zu ermöglichen.
Qt Quick 3D Das Modul
- QQuick3DRenderExtension ist eine neue Klasse für die Implementierung von anwendungsseitigen Rendering-Erweiterungen, was bedeutet, dass Benutzer nun die Rendering-Pipeline von QtQuick3D erweitern können, ohne Änderungen an der QtQuick3D-Engine vorzunehmen. Zusammen mit der neuen halböffentlichen API, die von QtQuick3D bereitgestellt wird, und dem Qt Rendering Hardware Interface (QRhi), kann nun benutzerdefinierter Rendering-Code in die Rendering-Pipeline von QtQuick3D eingefügt werden, entweder um als Teil des Haupt-Rendering-Durchgangs oder als eigenständige Render-Aufzeichnung gerendert zu werden. Die Ergebnisse von eigenständigen Render-Aufzeichnungen können vorangehenden Erweiterungen zur Verfügung gestellt werden, was durch die Reihenfolge, in der extensions deklariert wird, gesteuert werden kann. Standalone Render Extensions können auch als Texture Provider für Texture-Elemente zur Verfügung gestellt werden, was bedeutet, dass ihre Ergebnisse mit anderen QtQuick3D Typen verwendet werden können, die den QtQuick3D Texture-Typ verwenden, wie Materialien, Effekte usw.
- Die QSSG-Klassenfamilie ist dokumentiert und wird als APIs mit begrenzten Kompatibilitätsversprechen angeboten. Die Qt Spatial Scene Graph Klassen bieten Zugang und nützliche Helfer, um mit den internen Typen von QtQuick3D zu interagieren. Die QSSG-Klassen können in zwei Hauptgruppen unterteilt werden. Die erste Gruppe bietet Zugriff auf den Status, der notwendig ist, um benutzerdefiniertes Rendering in der QtQuick3D Szene mit QRhi durchzuführen, während die zweite Gruppe von Klassen Zugriff auf die Renderables von QtQuick3D und Helfer bietet, die es ermöglichen, diese Renderables zu modifizieren, zu übernehmen oder neu zu rendern, indem sie die gleiche Infrastruktur verwenden, die von QtQuick3D intern genutzt wird.
- QSSGRenderExtension - Backend-Implementierung für Render Extensions.
- QSSGRenderContextInterface - Aggregatklasse der Teilsysteme, die intern von QtQuick3D verwendet werden.
- QSSGRhiContext QSSGRhiGraphicsPipelineState, - convenience class used by . QSSGRhiSamplerDescription QRhi QtQuick3D
- QSSGFrameData - Daten pro Frame, die von Render Extensions verwendet werden.
- QSSGRenderHelpers QSSGModelHelpers, und - Hilfsklassen für den Zugriff, die Einrichtung und das Rendern von Renderables. QSSGCameraHelpers QSSGRenderExtensionHelpers QtQuick3D
- CustomMaterial hat neue sourceAlphaBlend und destinationAlphaBlend Eigenschaften.
- Textur hat neue textureProvider und tilingModeDepth Eigenschaften bekommen.
- View3D hat neue explicitTextureWidth, explicitTextureHeight und effectiveTextureSize Eigenschaften.
Qt Quick 3D Physics Modul
- HeightFieldShape: Unterstützung der Verwendung des QML Image Typs als Quelle durch die image Eigenschaft.
- ConvexMeshShape: Unterstützung der Verwendung von QQuick3DGeometry als Quelle durch die Eigenschaft geometry.
- TriangleMeshShape: Unterstützung der Verwendung von QQuick3DGeometry als Quelle durch die Eigenschaft geometry.
- PhysicsWorld:
- Hinzufügen der Eigenschaften reportKinematicKinematicCollisions und reportStaticKinematicCollisions, die kinematisch-kinematische bzw. statisch-kinematische Kollisionsberichte ermöglichen.
- Unterstützung der Einstellung der Anzahl der Simulations-Threads.
- PhysicsNode: Hinzufügen von Unterstützung für Kollisionsfilterung. Es ist jetzt möglich, Gruppen-IDs für Knoten anzugeben und Kollisionen zwischen ihnen zu ignorieren.
- PhysicsBody: Hinzufügen der Unterstützung für die Deaktivierung der Simulation eines Körpers durch die Eigenschaft simulationEnabled.
Qt Serial Bus Modul
- Hinzufügen einer Methode zu QCanDbcFileParser, die das Parsen von DBC-Dateien mit einer anderen Kodierung als UTF-8 ermöglicht.
Qt Sql Modul
- Der veraltete <qsql.h> Header wurde entfernt. Verwenden Sie stattdessen <qtsqlglobal.h>.
Qt WebEngine Modul
- Neue APIs QWebEngineWebAuthUXRequest und QML-Typ WebEngineWebAuthUXRequest hinzugefügt, um FIDO2-Benutzerüberprüfung und residente Anmeldeinformationen zu unterstützen.
- Neue api QWebEngineDesktopMediaRequest hinzugefügt, um die Quellenauswahl für Desktop Screen Capturing zu ermöglichen.
- WebEngineDriver hinzugefügt, um das Testen von Websites in verschiedenen Browsern zu automatisieren. Der WebEngineDriver basiert auf dem ChromeDriver.
- QWebEngineUrlRequestInfo::requestBody wurde hinzugefügt, um auf den Body einer Anfrage über die QIODevice API zuzugreifen.
- Die Einstellungen forceDarkMode und ForceDarkMode wurden hinzugefügt, um das automatische Rendering aller Webinhalte mit einem dunklen Thema zu aktivieren.
- Die Signale QWebEngineProfile::clearHttpCacheCompleted und QQuickWebEngineProfile::clearHttpCacheCompleted wurden hinzugefügt.
Qt Widgets Modul
- Die Klasse QRhiWidget (in der Technologievorschau) wurde hinzugefügt, um 3D-Grafiken über jede hardwarebeschleunigte Grafik-API zu rendern, die von der Rendering-Hardware-Schnittstelle von Qt unterstützt wird, d. h. OpenGL, Vulkan, Direct3D oder Metal.
- QCheckBox Es gibt ein neues Signal checkStateChanged, das den neuen Prüfstatus als typsicheren Qt::CheckState enum-Wert ausgibt.
- QDateTimeEdit Es gibt eine neue timeZone Eigenschaft
- Auf Systemen mit Windows 11 und höher wird standardmäßig der neue Windows 11 Widget-Stil verwendet. Dieser Stil unterstützt den Windows-Dunkelmodus.
Qt SVG Modul
- Unterstützung für einige Elemente aus dem SVG 1.1 Standard wurde hinzugefügt. Die Elemente sind Maske, Symbol, Markierung, Muster, Filter und Filterprimitive (feMerge, feColorMatrix, feGaussianBlur, feOffset, feComposite, feFlood)
- QtSvg::Options Flag hinzugefügt, um das Rendering der neuen Elemente zu aktivieren oder zu deaktivieren.
- Setter und Getter für die QtSvg::Options für QSvgRenderer und QSvgWidget hinzugefügt. Die neuen Funktionen sind standardmäßig aktiviert.
Werkzeuge
Qt Widgets Designer
- Qt Widgets Der Designer schreibt nun voll qualifizierte Aufzählungswerte in die
.ui
Dateien, um scoped enumerations und Qt for Python zu unterstützen. Die Unterstützung für das Lesen dieser Werte wurde auf 6.6.1 und 6.5.4 zurückportiert.
Änderungen an der Plattform
Desktop-Plattformen
Windows
- Windows 11-Stil hinzugefügt
- QNativeInterface::QWindowsScreen hinzugefügt, das den Zugriff auf das zugrunde liegende Handle von QScreen unter Windows ermöglicht.
macOS
- macOS 14 ist jetzt eine unterstützte Build- und Zielplattform.
Wayland-Client unter Linux
- QNativeInterface::QWaylandScreen hinzugefügt, das den Zugriff auf das zugrunde liegende Wayland-Objekt eines QScreen ermöglicht.
WebAssembly
- Drop-Unterstützung (Drag-and-Drop) hinzugefügt. Qt sendet nun Drop-Ereignisse, wenn der Benutzer Inhalte auf Anwendungsfenstern ablegt.
- OpenGL ES 3 / WebGL2 ist jetzt Standard, mit Fallback zu OpenGL ES2 / WebGL 1.
- Emscripten Version aktualisiert auf 3.1.50
Mobile Plattformen
Android
- Der Java-Code des Android-Plugins wurde überarbeitet und besteht aus
- Vereinfachung der Architektur und der Beziehungen zwischen den verschiedenen Klassen (zum Beispiel zwischen QtActivity, QtActivityLoader und QtActivityDelegate).
- Auslagerung der QtLoader-Klassen aus dem Public-Bindings-Paket.
- Entfernte Verwendung von Reflection.
- Vorläufige Unterstützung für untergeordnete Fenster für Android hinzugefügt, um mit Qt und seinen anderen QPAs konsistent zu sein. Infolgedessen wird QScreen::grabWindow() vorläufig nicht unterstützt.
- Android 14 wurde als maximal unterstützte Plattformversion festgelegt, und die Standardplattform SDK und die Zielebenen wurden auf API 34 gesetzt.
- Setzen Sie die unterstützte Android NDK Version auf r26b (26.1.10909125) und JDK auf 17.
- Die Beispiele der Kategorie Mobile wurden an iOS angepasst.
- QNativeInterface::QAndroidScreen wurde hinzugefügt, das den Zugriff auf die Android Display id eines QScreen ermöglicht.
- Unterstützung für die Verwendung von ndk-stack mit androidtestrunner hinzugefügt, um Testabsturzberichte hübsch zu drucken.
- CMake-Variable QT_ANDROID_DEPLOYMENT_TYPE hinzugefügt, um den Deployment-Typ für das Android-Paket explizit zu setzen.
- Umfassende Neufassung und Aktualisierung der Dokumentation für die Qt Android-Plattform.
- Einführung von Funktionen zur Nutzung der Leistungsfähigkeit von Qt in Android-Projekten:
- Qt Quick View Android Class zur Verwendung von Qt Quick in Java- oder Kotlin-Code (Technologievorschau).
- Qt Tools für Android Studio für Android Studio (Technologievorschau).
iOS
- iOS 17 ist jetzt eine unterstützte Zielplattform.
Eingebettete Plattformen
Boot to Qt
- Unterstützung für Yocto 4.3 (Nanbield) wurde hinzugefügt.
- Unterstützung für ARM Linux Entwicklungshosts hinzugefügt.
- Squish-Unterstützung wurde in die Target-Images aufgenommen.
- Die Unterstützungsebenen für Zielhardware wurden mit neuen unterstützten Boards für Tier 3 aktualisiert:
- Amazon AWS EC2 ARM64
- NVIDIA Jetson AGX Orin Entwickler-Kit
- NXP i.MX8M Nano LPDDR4 EVK (ersetzt die DDR4 EVK Variante)
- Qualcomm Robotics RB5 Entwicklungskit
- TI SK-AM69
VxWorks
- Unterstützung für VxWorks 23.09 als Technologievorschau hinzugefügt.
Änderungen am Build-System
- Qt C++-Header enthalten jetzt Metadaten für das IWYU-Tool.
- CMake: Sie können jetzt die Argumente für *deployqt Werkzeuge in qt_generate_deploy_app_script(), qt_deploy_runtime_dependencies() durch Setzen der DEPLOY_TOOL_OPTIONS anpassen.
- CMake: qt_add_library() berücksichtigt nun den Wert der BUILD_SHARED_LIBS Variable. Wenn die Variable definiert ist, hat sie beim Hinzufügen der Bibliotheksziele höhere Priorität als die Logik zur Erkennung des Bibliothekstyps in qt_add_library().
- CMake: qt_standard_project_setup() erlaubt es nun, die native UI-Sprache der Anwendung zu setzen, sowie die Sprachen, in die die UI übersetzt wird. Dies wird dann von qt_add_translations()-Aufrufen aufgegriffen, um .ts und .qm Dateien zu generieren, die zu den angegebenen Sprachen passen, wobei eine 'Plural-only' .ts Datei für die native Sprache erzeugt wird.
- CMake: Sie können nun mehrere Ziele an qt_add_translations() übergeben, um Übersetzungen zu extrahieren. Alternativ kann man qt_add_translations() alle Targets eines Projekts sammeln lassen (mit der neuen Funktion qt_collect_translation_source_targets()), mit der Option, unerwünschte Targets auf Verzeichnis- oder Target-Ebene auszuschließen.
- CMake: qt_add_translations() wurde aus der technischen Vorschau verschoben.
WebOS
- Qt 6.7 wurde für die Zusammenarbeit mit LG webOS OSE 2.25.0(Qt für webOS) verifiziert.
Liste der API-Änderungen
Diese Seiten enthalten einen Überblick über die API-Änderungen in Qt 6.7:
© 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.