Was ist neu in Qt 6.5

Neue und wiederhergestellte Module in Qt 6.5

Qt 6.5 fügt die folgenden Module und Werkzeuge hinzu:

  • Qt Quick Effect Maker - Ein Werkzeug zum Erstellen von leistungsstarken Shader-Effekten für Qt Quick.
  • Qt Quick Effects - Ein Modul, das MultiEffect enthält, um einen oder mehrere einfache grafische Effekte auf ein Qt Quick Item anzuwenden.
  • Qt Quick 3D Physics - Eine Physik-Engine zur Verwendung mit Qt Quick 3D. Dieses Modul ist nicht mehr in der technischen Vorschau.
  • Qt Qml Core - Ein Modul, das verschiedene Qt Core APIs für QML bereitstellt.

Neue und wiederhergestellte Module in der technischen Vorschau

Hinweis: Die Stabilität von API und ABI ist nicht garantiert.

  • Qt LocationMap rendert 2D-Karten in eine Qt Quick Anwendung. MapView enthält Qt Quick Input Handler, um die typischen interaktiven Funktionen (Zoom, Pan, Tilt) zu implementieren.
  • Qt GRPC unterstützt die Kommunikation mit gRPC-Diensten unter Verwendung von Klassen, die auf Basis von Dienstbeschreibungen aus protobuf .proto-specifications generiert werden.
  • Qt Protobuf unterstützt das Generieren, Serialisieren und Deserialisieren von Qt-basierten Klassen aus protobuf .proto-specifications.

Neue Funktionen in Qt 6.5

Qt Core Das Modul

  • QTimeZone kann nun eine Qt::TimeSpec und, falls relevant, einen Offset in einer leichtgewichtigen Zeitdarstellung verpacken, die die verschiedenen APIs von QDateTime und QDate vereinheitlicht, die entweder eine QTimeZone oder eine Qt::TimeSpec und einen Offset benötigten.
  • Einführung einer API für Anwendungsberechtigungen, die es Anwendungen ermöglicht, Berechtigungen für Funktionen zu prüfen oder anzufordern, die vor der Nutzung die Zustimmung des Benutzers erfordern.
  • Neues plattformübergreifendes Tracing-Backend im Common Trace Format (CTF).
  • QBindable kann jetzt aus jeder Eigenschaft mit einem NOTIFY-Signal erstellt werden. Dies ermöglicht es, bestehende, nicht-bindbare Eigenschaften mit bindbaren Eigenschaften zu integrieren.
  • Die CMake-Funktion qt_generate_deploy_app_script akzeptiert nun vorzugsweise ein Argument namens OUTPUT_SCRIPT. Die Übergabe des alten FILENAME_VARIABLE ist deprecated.

Qt GUI Modul

  • Wiedereinführung der Klassen QWindowsMimeConverter und QUtiMimeConverter für die Handhabung von Drag'n'Drop- und Clipboard-Daten in plattformspezifischen Formaten unter Windows, macOS und iOS.
  • QVulkanInstance aktiviert nun standardmäßig die Vulkan-Portabilität physischer Geräte. Dies ist erforderlich, um mit neueren MoltenVK-Versionen auf Apple-Plattformen funktionieren zu können. Es wurde ein NoPortabilityDrivers-Flag hinzugefügt, mit dem Sie dies deaktivieren können.
  • Die Vulkan-Rendering-Infrastruktur verwendet nun VK_EXT_debug_utils anstelle der veralteten VK_EXT_debug_report und VK_EXT_debug_marker.
  • QTextLayout::glyphRuns() kann nun den String-Index zurückgeben, der jeder Glyphe entspricht, wenn dies angefordert wird. Erhältlich durch die neue Funktion QGlyphRun::stringIndexes().
  • Checkbox-Listenelemente können nun sowohl in HTML als auch in Markdown gelesen und geschrieben werden, einschließlich Konvertierungen.
  • QGuiApplication::setBadgeNumber() wurde hinzugefügt, um dem Benutzer eine Rückmeldung über die Anzahl der ungelesenen Nachrichten oder ähnliches zu geben. Der Badge wird über das Symbol der Anwendung im Dock unter macOS, das Home-Screen-Symbol unter iOS oder die Taskleiste unter Windows gelegt.

Qt Quick Modul

  • TableView Unterstützung für die Bearbeitung von Zellen mit einem Bearbeitungsdelegat.
  • TableView Unterstützung für die Größenänderung von Zeilen und Spalten mit der Maus.
  • TableView Unterstützung für das explizite Festlegen von Zeilen- und Spaltengrößen.
  • TableView Es gibt ein neues Signal layoutChanged(). Dieses Signal kann z.B. verwendet werden, um Overlay-Elemente neu zu positionieren.
  • TableView Unterstützung für Mehrfachselektionen.
  • Unterstützung für die Angabe von separaten RGB- und Alpha-Blend-Faktoren in einem QSGMaterial wurde hinzugefügt.
  • Der Qt Quick Scenegraph verwendet nun automatisch persistente, plattenbasierte Zwischenspeicherung von Grafikpipelines oder das Zwischenformat Shader-Bytecode, abhängig von der Plattform und der verwendeten 3D-Grafik-API. Dadurch soll der Zeitaufwand für die Erstellung der Grafikpipeline in späteren Durchläufen der Anwendung reduziert werden. Darüber hinaus bietet QQuickGraphicsConfiguration eine explizite Kontrolle darüber, ob und von wo aus diese Daten geschrieben und geladen werden. Dies ermöglicht fortgeschrittene Anwendungsfälle, wie z.B. die Auslieferung einer vorbereiteten Cache-Datei mit einer Anwendung oder einem Gerät, was auch den ersten Start beschleunigt.
  • PinchHandler hat neue gruppierte Eigenschaften scaleAxis und rotationAxis, die mehrere neue Werte bieten, einschließlich der Eigenschaft activeValue, die in allen Handler-Achsengruppen neu ist. Sie hat auch die Eigenschaften activeTranslation und persistentTranslation erhalten, die DragHandler bereits hatte.
  • DragHandler xAxis und haben neue Eigenschaften . yAxis activeValue
  • PinchHandlerDie Eigenschaft activeScale (die vorher scale hieß) ist nicht mehr auf den Bereich zwischen minimumScale und maximumScale beschränkt: Diese Grenzen gelten nur für persistentScale. Ebenso ist activeRotation (vorher rotation) nicht mehr auf den Bereich zwischen minimumRotation und maximumRotation beschränkt. Diese Begrenzungen werden auf die gleiche Weise für native Touchpad-Zwischenzeilengesten wie auf Touchscreens angewendet.
  • TapHandler::exclusiveSignals Mit der neuen Funktion können Sie die Signale singleTapped und doubleTapped exklusiv machen.

Das Qt Labs Animationsmodul

Qt Quick Controls Das Modul

Qt Test Modul

  • QTest::currentTestResolved() wurde hinzugefügt, das true zurückgibt, wenn der Test fehlgeschlagen ist oder übersprungen wurde. Dies kann QTest::currentTestFailed() als Testbedingung bei der Rückkehr von einer Hilfsfunktion ersetzen.
  • QTest::mouseRelease() und mouseClick() können nun zum Testen von Doppelklicks verwendet werden, indem eine realistische Zeitstempel-Verzögerung angegeben wird, für den Fall, dass ein Zwischenzustand zwischen den Ereignissen geprüft werden soll. mouseDClick() ist ansonsten immer noch praktischer.

Qt Widgets Das Modul

  • QKeySequenceEdit hat zwei neue Eigenschaften erhalten: maximumSequenceLength ermöglicht es Anwendungen, die Länge einer Tastensequenz zu steuern. finishingKeyCombinations definiert Tastenkombinationen, die die Aufzeichnung beenden.
  • Unterstützung für stereoskopisches Rendering wurde zu QOpenGLWidget hinzugefügt, was auch für QGraphicsView gilt, das von einem QOpenGLWidget Viewport unterstützt wird. Im Gegensatz zu QOpenGLWindow oder dem jetzt entfernten QGLWidget in Qt 5 und 4 benötigt QOpenGLWidget explizite Unterstützung mit unterstützenden APIs, da Anwendungen in diesem Fall nicht direkt auf das native Fenster rendern und daher nicht die gleiche Kontrolle über die aktiven Zeichenpuffer haben wie bei QOpenGLWindow.

Qt Positioning Modul

Qt Serial Bus Baustein

Alle neuen Klassen sind experimentell und können noch geändert werden.

Qt Network Baustein

  • Eingeführt QHttp1Configuration. Die Klasse kann verwendet werden, um die maximale Anzahl der Verbindungen pro Host zu konfigurieren, wenn HTTP 1 verwendet wird (Standard: 6).
  • QNetworkRequest bei Qt for WebAssembly wurde das Attribut UseCredentialsAttribute hinzugefügt, das die Verwendung von withCredentials für die zugrunde liegende XMLHttpRequest ermöglicht.

Qt QML-Modul

  • Zu QQmlApplicationEngine und QQmlComponent wurde eine API hinzugefügt, um QML-Elemente über ihren Modul-URI und Typ-Namen zu laden/erstellen. Im Gegensatz zu den URL-basierten Funktionen, funktioniert dies auch mit C++-Typen und Inline-Komponenten.
  • QQmlListProperty properties verhalten sich jetzt eher wie Arrays und unterstützen Methoden wie map(), reduce() und forEach(). Das gleiche gilt für andere Sequenztypen, wie QList<int> und ähnliche.
  • Die qmltc wurde erweitert, um mehr Qml-Konstrukte zu unterstützen, insbesondere Übersetzungsbindungen, Inline-Komponenten, Singletons und Signalhandler für C++-definierte Signale.
  • Der QML-Skriptcompiler kann zusätzliche Konstrukte verarbeiten. Insbesondere:
    • console.log() und Freunde
    • let und const
    • qsTr() und Freunde
    • arg() für Zeichenketten
    • alle übrigen bitweisen und Schiebeoperatoren
    • der Potenzierungsoperator
  • Der QML Disk Cache kann mit der neuen Umgebungsvariablen QML_DISK_CACHE feiner gesteuert werden.
  • Neue öffentliche CMake-API hinzugefügt:
    • Es wurde eine Qt-CMake-Policy eingeführt, um einen besseren Standard für den Ressourcen-Präfix zu setzen. Wenn die QTP0001-Policy auf NEW gesetzt ist, wird die QML-Engine immer in der Lage sein, Ihre QML-Module im Resource-Dateisystem zu finden.
  • Die CMake-Funktion qt_generate_deploy_qml_app_script akzeptiert jetzt vorzugsweise ein Argument namens OUTPUT_SCRIPT. Die Übergabe des alten FILENAME_VARIABLE ist veraltet.

Qt Quick 3D Modul

  • Automatische LOD-Unterstützung (Level of Detail) für Modelle wurde hinzugefügt. Dies ermöglicht es, vereinfachte Versionen der Meshes während des Asset-Imports zu generieren und dann beim Rendern automatisch den passenden Level zu wählen.
  • Es wurde explizite LOD-Unterstützung hinzugefügt, um die Deckkraft von Modellen in Abhängigkeit von der Kameraentfernung zu steuern.
  • ExtendedSceneEnvironment mit integrierten Effekten für Tiefenschärfe, Farbabstufung, Glühen, Vignette, Linsenreflexion und andere. Diese Effekte werden gemeinsam ausgeführt, was die Effizienz im Vergleich zu einzelnen, eigenständigen Nachbearbeitungseffekten erhöht, die jeweils einen oder mehrere Renderdurchgänge erfordern.
  • Verbessertes DebugView mit Rendering-Statistiken, der Liste aktiver Mesh- und Textur-Assets und Live-Rendering-Pass-Informationen sowie Steuerelementen zum interaktiven Umschalten von Einstellungen wie Drahtgittermodus und Materialüberschreibungen von DebugSettings.
  • Es wurde DebugSettings hinzugefügt, das über SceneEnvironment verfügbar ist und die programmatische Steuerung von Einstellungen wie Drahtgittermodus und Materialüberschreibungen ermöglicht, um nur bestimmte Aspekte von physikalisch basierten Materialien zu rendern.
  • InfiniteGrid wurde hinzugefügt, um ein unendliches Gitter in der horizontalen Ebene mit Ausblendung zu implementieren.
  • Integrierte, einfache Nebelunterstützung wurde hinzugefügt, die über SceneEnvironment verfügbar ist. Wenn sie aktiviert ist, wird beim Rendern der Modelle in der Szene ein Tiefen- oder Höhennebeleffekt angewendet.
  • Verbessertes Picking, wenn instanziertes Rendering verwendet wird.
  • Unterstützung für Vertex-Farben für PrincipledMaterial und SpecularGlossyMaterial
  • Reflection Probe: Unterstützung für die Verwendung einer bereitgestellten Cubemap-Textur anstelle des Renderns der Szene wurde hinzugefügt.
  • Post-Processing-Effekte wurden verbessert, um auf Änderungen in den URIs der Shader-Quelldateien zur Laufzeit richtig zu reagieren.
  • Es wurde eine dauerhafte, plattenbasierte Zwischenspeicherung der zur Laufzeit erzeugten Material-Shader-Daten hinzugefügt. Es wird erwartet, dass dies die Startzeiten der Anwendung und die Zeiten für den Wechsel der Ansicht verbessert.

Qt WebView Modul

Qt Multimedia Baustein

  • Das ffmpeg-Medien-Backend, das in 6.4 eine technische Vorschau ist, wird zum Standard für macOS, Windows, Android und Linux mit Ausnahme der Yocto-Distribution. Die nativen Backends sind weiterhin mit eingeschränkter Unterstützung verfügbar.
  • Die Klasse QScreenCapture wurde eingeführt, die einen neuen Typ von Videoeingang darstellt. Es ist möglich, Videos von QScreenCapture über QMediaCaptureSession zu Ausgängen zu leiten, z.B. QMediaRecorder oder QVideoWidget. Die Bildschirmaufnahme-Funktionalität ist nur mit dem ffmpeg media backend verfügbar.

Plattform-Änderungen

WebAssembly

  • Binärpaket mit aktiviertem Multithreading zu Qt Online Installer hinzugefügt.
  • Unterstützung für die File System Access API wurde hinzugefügt. Dateidialogaufrufe wie QFileDialog::getOpenFileContent() und QFileDialog::saveFileContent() verwenden nun diese API, wenn sie vom Browser unterstützt wird.
  • Unterstützung für die Local Font Access API wurde hinzugefügt. Qt verwendet nun lokale Schriftarten in Browsern, die diese API unterstützen.
  • Technische Vorschau der Videowiedergabe und Kameraunterstützung zu Qt Multimedia hinzugefügt.
  • Konfigurationsoption für WebAssembly SIMD hinzugefügt: -feature-wasm-simd128
  • Konfigurationsoption für WebAssembly-Ausnahmen hinzugefügt: -feature-wasm-exceptions
  • Qt Web Utils mit Utility-Funktionen und Beispielen für die Verwendung von Qt im Web veröffentlicht.
  • QTest für WebAssembly verwendet nun standardmäßig emrun. Ein spezielles Skript für WebAssembly steuert die Ausführung von automatischen Tests.

Desktop-Plattformen

Windows

  • Die Umgebungsvariable QT_WIN_DEBUG_CONSOLE kann gesetzt werden, um stdout/stderr-Meldungen in einem Konsolenfenster für GUI-Anwendungen zu sehen, die von der Kommandozeile gestartet werden. Setzen Sie sie auf new oder attach.

macOS

Wayland-Client unter Linux

  • Unterstützt jetzt das fractional_scale_v1-Protokoll für Compositors, die dem Client fraktionale Skalierungsfaktoren vorschlagen.

Mobile Plattformen

Android

  • Gradle wurde auf 8.0 und das Android Gradle Plugin (AGP) auf 7.4.1 aktualisiert (erfordert JDK 11 oder höher).
  • NDK auf r25b (25.1.8937393) aktualisiert.
  • Die Liste der unterstützten Versionen ist nun Android 8.0 (API 26) oder höher.
  • Erhöhen Sie die minimale Plattform-Build-Sdk-Version auf 33 (QT_ANDROID_API_VERSION).
  • Unterstützung von mehr Operationen auf Inhaltsschema-URIs mit Qt file/dir-Funktionen.
  • Korrekturen und Aktualisierungen der Dokumentation für QStandardPaths unter Android Scoped Storage.
  • Drucken von Qt JNI Ausnahmen von Qt und nicht vom Android System.
  • Fixierte Unterstützung für APK Signature Scheme v2.

iOS

Eingebettete Plattformen

Boot to Qt

  • Boot to Qt Stack wurde aktualisiert, um yocto 4.1.2 (langdale) zu verwenden.
  • Unterstützung für macOS-Hosts mit Docker-basierten Toolchains.
  • Die Unterstützungsebenen für Zielhardware wurden aktualisiert und es gibt nun mehrere Unterstützungsebenen, die für bestimmte Hardware- und Betriebssystemkombinationen gelten.

Liste der API-Änderungen

Diese Seiten enthalten einen Überblick über die API-Änderungen in Qt 6.5:

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