Was ist neu in Qt 6.8

Neue und wiederhergestellte Module in Qt 6.8

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

  • Das svgtoqml-Werkzeug, das zur Generierung von QML-Code aus SVG-Dokumenten verwendet wird, ist jetzt aus der technischen Vorschau heraus. Das Tool unterstützt eine statische Teilmenge des SVG Tiny 1.2 Profils.
  • Das Qt Graphs, Qt HTTP Server, Qt Protobufund Qt GRPC sind alle aus dem Tech-Preview-Status herausgehoben.
  • hinzugefügt Qt Quick Vector Image Modul zur Darstellung von SVG-Dokumenten als skalierbare Vektorgrafiken in einer Qt Quick Szene.

Entfernte Module in Qt 6.8

Das folgende Modul ist veraltet. Wir raten dringend davon ab, es in neuem Code zu verwenden.

Qt 3D Modul

Das Qt 3D Modul ist veraltet. Qt 3D bleibt Teil der lizenzierten Software und des Qt-Projekts. Das Modul wird weiterhin mit anderen Modulen für zukünftige Versionen integriert. Kritische Bugs und Sicherheitslücken werden von den Modulbetreuern bei KDAB behoben. Bezüglich neuer Features und Funktionen sollten sich die Benutzer an KDAB wenden, indem sie eine E-Mail an info@kdab.com schicken.

Neue Funktionen in Qt 6.8

Qt Core Das Modul

Qt Graphs Das Modul

Qt Graphs3D

Qt Graphs2D

Qt GRPC Modul

  • Qt GRPC wurde aus der technischen Vorschau befördert.
  • Streaming-Unterstützung für das GrpcQuick-Modul wurde hinzugefügt.
  • QGrpcInterceptor, QGrpcInterceptorManager und QGrpcInterceptorContinuation wurden entfernt.
  • Die Methode writesDone() wurde zu QGrpcClientStream und QGrpcBidirStream hinzugefügt, um einen Stream auf der Client-Seite halb zu schließen.

Qt GUI Das Modul

  • QStyleHints::colorScheme hat jetzt eine Setter-Funktion, die es Anwendungen ermöglicht, die Systemeinstellung mit einem expliziten Dunkel- oder Hellschema zu überschreiben.
  • Es wurde QFont::ContextFontMerging hinzugefügt, mit dem ein neuer Algorithmus zum Zusammenführen von Schriften aktiviert werden kann, der die gesamte Zeichenkette bei der Auswahl von Ausweichschriften berücksichtigt. Dies ist zwar mit etwas mehr Aufwand verbunden, führt aber in bestimmten Fällen zu besseren Ergebnissen.
  • QFont::PreferTypoLineMetrics wurde eine Stilstrategie hinzugefügt, die so eingestellt werden kann, dass immer die typografischen Zeilenmetriken in OpenType-Schriften bevorzugt werden, auch wenn die Schrift das USE_TYPO_METRICS-Flag nicht manuell gesetzt hat.
  • QDesktopServices Unterstützung für benutzerdefinierte und https-URL-Schemata für macOS hinzugefügt, ähnlich wie bei iOS.
  • QImage::Format_CMYK8888 32bit CMYK Bildformat wurde hinzugefügt.
  • QColorSpace Unterstützung für die Verarbeitung von ICC A2B-Farbräumen wurde hinzugefügt, zusammen mit expliziter Unterstützung für Graustufen und CMYK-Farbräume.
  • Unterstützung für die HDR-Farbräume QColorSpace::Bt2020, QColorSpace::Bt2100Pq und QColorSpace::Bt2100Hlg wurde hinzugefügt.
  • QColorSpace::transformModel() gibt das zugrunde liegende Verarbeitungsmodell zurück.
  • QColorSpace::colorModel() gibt zurück, für welches Farbmodell der Farbraum erstellt wurde.
  • QImage::colorTransformed() und QImage::applyColorTransform() Varianten mit drei Argumenten wurden hinzugefügt, um die gleichzeitige Konvertierung von Bildformat und Farbraum zu unterstützen.
  • QStyleHints::contextMenuTrigger ist eine beschreibbare Eigenschaft, mit der Anwendungen steuern können, ob Kontextmenüs durch Drücken oder Loslassen einer Taste geöffnet werden sollen.
  • Qt-Barrierefreiheitsschnittstellen können nun die Meldung von attributes als Schlüssel/Wert-Paare an Clients unterstützen.
  • QAccessibleAnnouncementEvent kann von Anwendungen ausgelöst werden, um die Ankündigung einer Nachricht durch assistive Technologien anzufordern.
  • QPageLayout::setMargins kann nun einen optionalen OutOfBoundsPolicy Parameter annehmen, um anzugeben, ob Ränder, die außerhalb der Grenzen liegen, zurückgewiesen oder geklammert werden sollen.
  • QPdfWriter CMYK-Unterstützung für Stifte/Füllungen hinzugefügt.
  • QFontDatabase addApplicationFallbackFontFamily bietet nun die Möglichkeit, die Standard-Fallback-Schriftfamilien für bestimmte Skripte zu überschreiben.
  • Vervollständigung der Unterstützung für Multiview-Rendering in QRhi. Multiview wird nun auch mit Vulkan 1.1-Implementierungen unterstützt, anstatt Vulkan 1.2 zu erfordern. Dies ist insbesondere für Android-basierte Geräte wie das Meta Quest 3 relevant.
  • Es wurde QRhi Unterstützung für das automatische Auflösen von Multisample-Tiefen (Tiefen/Schablonen) in eine Nicht-Multisample-Tiefen (Tiefen/Schablonen)-Textur auf Plattformen und APIs eingeführt, wo dies unterstützt werden kann. Siehe QRhiTextureRenderTargetDescription::setDepthResolveTexture() und QRhi::ResolveDepthStencil für Details.

Qt Multimedia Modul

  • Die Klassen QVideoFrameInput und QAudioBufferInput wurden hinzugefügt, die benutzerdefinierte Mediendaten an QMediaRecorder und QMediaCaptureSession senden können.
  • Hinzufügen der Klasse QAudioBufferOutput, die dekodierte Audiodaten von QMediaPlayer empfangen kann.
  • Hinzufügen der Klasse QAbstractVideoBuffer, die die Erstellung von QVideoFrame Instanzen mit benutzerdefinierten Videodaten ermöglicht.
  • QMediaRecorder kann die Medienausgabe auf QIODevice schreiben.
  • Unterstützung von QScreenCapture unter Linux mit dem Wayland Compositor, der den ScreenCast-Dienst über das XDG Desktop Portal unterstützt, wurde hinzugefügt.
  • Die FFmpeg-Bibliothek ist dynamisch mit dem FFmpeg-Plugin verknüpft, und die verwendeten gemeinsam genutzten FFmpeg-Module werden mit Qt Multimedia ausgeliefert.
  • Unterstützung für das FFmpeg Media Backend auf iOS wurde hinzugefügt.
  • Die minimal erforderliche GStreamer-Version wurde auf 1.20 erhöht.

Qt Network Modul

Qt Network Auth-Modul

  • Die Klasse QOAuthUriSchemeReplyHandler wurde hinzugefügt, die private/angepasste und https URI-Schema-Umleitungen handhabt (unterstützte Plattformen: iOS, Android und macOS).
  • Unterstützung für Proof of Key Code Exchange (PKCE) in der Klasse QOAuth2AuthorizationCodeFlow hinzugefügt. PKCE ist eine empfohlene Sicherheitsmaßnahme, um Angriffe auf das Abfangen von Autorisierungscodes abzuschwächen.
  • Auf Anregung mehrerer Benutzer haben wir viele Probleme behoben, um qnetworkauth allgemein zu verbessern. Dies beinhaltet verschiedene Fehlerkorrekturen, Verbesserungen, Verwerfungen, Dokumentationsergänzungen und auch eine Übersichtsdokumentation, um den Einstieg zu erleichtern.

Qt Positioning Modul

  • Das Qt Positioning Android-Backend kann nun Höhen im MSL-Format auf Android 14 und höher bereitstellen.

Qt Protobuf Baustein

  • Das Qt Protobuf Modul wurde aus der Tech-Preview befördert.

Qt QML-Modul

  • Neue Funktionen zu QML Language Server hinzugefügt: semantische Hervorhebung, mehr Unterstützung für JavaScript-Sprachen, Snippet-Unterstützung für Quick-Typen, Dokumentationshinweise, Umbenennung von QML-Dateien, Unterstützung für die Konfiguration von Warnungen .qmllint.ini
  • Zwei neue CMake Policies, die das Verhalten von qt_add_qml_module beeinflussen, wurden hinzugefügt: QTP0004 erleichtert die Verwendung von QML-Modulen, wenn verschachtelte Ordnerstrukturen verwendet werden. QTP0005 erlaubt die Verwendung von Targets bei der Angabe von Importen und Abhängigkeiten.

Qt Quick Compiler

  • Der Qml-Script-Compiler zeichnet nun Statistiken über die Kompilierung von Qml nach Cpp auf. Diese Informationen können durch Ausführen des all_aotstats-Targets für das Projekt angezeigt werden.

Qt Quick Modul

  • Es wurde font.contextFontMerging hinzugefügt, mit dem ein neuer Algorithmus zum Zusammenführen von Schriften aktiviert werden kann, der den gesamten Text bei der Auswahl von Ausweichschriften berücksichtigt. Dies ist zwar mit etwas mehr Aufwand verbunden, führt aber in bestimmten Fällen zu besseren Ergebnissen.
  • Die Eigenschaft font.preferTypoLineMetrics wurde hinzugefügt, die so eingestellt werden kann, dass die typografischen Zeilenmetriken in OpenType-Schriften immer bevorzugt werden, auch wenn die Schrift das USE_TYPO_METRICS-Flag nicht manuell gesetzt hat.
  • Die Eigenschaft retainWhileLoading wurde zu Image und BorderImage hinzugefügt. Wenn sie bei Bildern, die asynchron geladen werden, auf true gesetzt ist, werden die aktuellen Bilddaten beibehalten, bis das neue Bild vollständig geladen ist. Dadurch kann Flackern vermieden werden.
  • PlanarTransform wurde hinzugefügt, ein Utility-Objekt, das einfache Funktionen zur Angabe von 2D-Transformationsmatrizen bietet.
  • PathRectangle wurde hinzugefügt, ein optionaler abgerundeter Rechteckpfad für Shape und PathView.
  • Die Eigenschaft Drag.imageSourceSize wurde hinzugefügt, um die Größe des Bildes zu steuern, das die gezogenen Daten repräsentiert.
  • QQuickRenderTarget::depthTexture wurde hinzugefügt, um eine benutzerdefinierte Tiefentextur festzulegen.
  • QQuickRenderTarget::Flag wurde als Enumerator hinzugefügt, um die Angabe eines Ansichtsformats bei der Konstruktion durch die benannten Konstruktoren zu ermöglichen.
  • TableView unterstützt jetzt das programmatische und interaktive Verschieben von columns und rows.
  • Alle standardmäßigen Qt Quick Elemente und Materialien sind mit Multiview Rendering kompatibel. Dies wird transparent für die Anwendungen genutzt, wenn 2D-Inhalte in eine Qt Quick 3D XR-Szene eingebettet werden und Multiview-Rendering aktiviert ist. Multiview-Rendering kann die Rendering-Leistung verbessern und den Stromverbrauch von AR/VR-Geräten senken.
  • Das Erstellen von Multiview-kompatiblen benutzerdefinierten Materialien (QSGMaterial, QSGMaterialShader) wird über QSGMaterial::viewCount() ermöglicht.
  • Unterstützung für das Rendering von Qt Quick in ein 2D-Textur-Array mit Multiview Rendering in QQuickRenderTarget wurde hinzugefügt. Dies wird über neue Überladungen von Funktionen wie QQuickRenderTarget::fromVulkanImage() realisiert und bildet die Grundlage der Multiview-Rendering-Unterstützung für XR-Anwendungen, die mit Qt Quick 3D.
  • Es wurde Unterstützung für die automatische Durchführung von multisample resolve am Ende eines Rendering-Durchgangs in QQuickRenderTarget hinzugefügt. Zuvor war das Multisample-Rendering von umgeleiteten Qt Quick -Szenen nur möglich, indem man Multisample-Texturen ansteuerte und die Auflösung der Anwendung oder ihren Shadern überließ. Wenn diese Funktion aktiviert ist, erstellt Qt Quick nun automatisch dazwischenliegende Multisample-Texturen zur Verwendung als Farbpuffer und führt die Auflösung in die von der Anwendung bereitgestellte Nicht-Multisample-Textur automatisch durch. Dies ermöglicht es Qt Quick, Zieltexturen zu rendern, die von einer externen Engine, einem Framework oder einer API (z. B. OpenXR) bereitgestellt werden, die nur Nicht-Multisample-Texturen bereitstellt und verbraucht.
  • Unterstützung für setting a depth texture wurde in QQuickRenderTarget hinzugefügt. Dies ermöglicht es, die eigene Textur der Anwendung (oder Textur-Array, wenn Multiview-Rendering verwendet wird) anzugeben, in die die Tiefendaten geschrieben werden, anstatt Qts eigene Zwischenpuffer zu verwenden. Nützlich insbesondere, wenn Tiefendaten in eine Tiefentextur geschrieben werden müssen, die von einer externen Engine, einem Framework oder einer API (z.B. OpenXR) bereitgestellt wird.
  • Unterstützung für die Angabe eines Texturansichtsformats in QQuickRenderTarget wurde hinzugefügt. Dies wird über das Argument viewFormat in den neuen Überladungen für QQuickRenderTarget::fromVulkanImage() und ähnliche angegeben. Diese Funktion wird speziell zur Verfügung gestellt, um das Weglassen oder Hinzufügen des sRGB-Qualifizierers vom oder zum Texturformat zu ermöglichen, und ist nützlich, wenn mit Texturen gearbeitet werden muss, die von einer externen Engine, einem Framework oder einem XR-Compositor bereitgestellt werden, wo keine Kontrolle über das Texturformat verfügbar ist, aber die implizite lineare->sRGB-Konvertierung der 3D-APIs bei Shader-Schreibvorgängen nicht akzeptabel ist (z. B. weil die Qt Quick 3D Material-Pipeline die gleiche Operation bereits durchführt).
  • QQuickRenderTargetDie interne Verwaltung von Zwischenpuffern für Tiefen-/Schablonen- und Multisample-Farbdaten wurde umgestaltet. Durch den Aufruf von QQuickWindow::setRenderTarget() werden nicht mehr alle internen Zwischenpuffer ungültig gemacht, sondern es wird versucht, sie wiederzuverwenden, solange Größe, Format und andere Parameter übereinstimmen. Es wird erwartet, dass dies zu Leistungsverbesserungen in Anwendungen und Bibliotheken führt, die bei jedem Frame eine andere native Textur an QQuickWindow übergeben müssen (z. B. weil die Textur aus einem Pufferpool stammt, der von einer externen Engine, einem Framework oder einem XR-Compositor verwaltet wird).

Qt Quick Controls Modul

  • FluentWinUI3 Style wurde hinzugefügt, ein moderner, nativer Stil, der für Plattformen mit Windows 11 und höher entwickelt wurde.
  • Eine neue Eigenschaft popupType wurde zu Popup und abgeleiteten Typen hinzugefügt. Damit kann gesteuert werden, ob das Popup in der Szene oder in einem eigenen Popup-Fenster auf oberster Ebene angezeigt werden soll.
  • Der macOS-Stil ist nun in der Lage, native menus und menubars zu erstellen.
  • Die Typen aus dem (internen) QtQuick.Controls.impl Modul, wie z.B. PaddedRectangle oder MnemonicLabel oder ähnliches, werden nicht mehr versehentlich in jedem Dokument angezeigt, das QtQuick.Controls oder einen Controls-Stil importiert. Diese Typen sind private APIs und sollten nie ohne expliziten Import von QtQuick.Controls.impl erreichbar sein.

Qt Quick Shapes Modul

  • Die Eigenschaft ShapePath.fillItem wurde hinzugefügt. Diese kann verwendet werden, um ein beliebiges Texturanbieter-Element (z. B. überlagerte Elemente und Bilder) als Füllung für die Form zu verwenden.
  • Die Eigenschaft ShapePath.fillTransform wurde hinzugefügt, mit der eine beliebige Transformation für die Formfüllung festgelegt werden kann, unabhängig davon, ob es sich um ein Element oder einen Farbverlauf handelt.

Qt Quick 3D Modul

  • Technologievorschau der XR-Unterstützung für Qt Quick 3D
    • Unterstützung für Head Mounted Displays (HMD), die OpenXR verwenden, wie z.B. das Meta Quest 2 und 3.
    • Unterstützung für Apple Vision Pro.
    • Multi-View-Rendering (Rendering für beide Augen in einem einzigen Durchgang).
    • Unterstützung für räumliche Eingaben über Hand-Tracking oder Controller.
    • Unterstützung von räumlichen Ankern.
  • Verbessertes Schattenrendering
    • Allgemeine Qualitätsverbesserungen.
    • Verbessertes Debugging-Werkzeug für Schatten.
    • Kaskadierende Schattenkarten.
    • PCF (Percentage-closer filtering)-Weichschatten.
  • PrincipledMaterial Erweiterungen
    • Zusätzliche Parameter zur Anpassung von Fresnel.
    • Unterstützung für Eigenschaftsmaskierung basierend auf dem Vertex-Farbattribut.
  • CustomMaterial: Offenlegung der restlichen Eigenschaften von PrincipledMaterial.

Qt Quick VectorImage-Modul

  • Einführung von VectorImage: Eine Komponente, die verwendet werden kann, um Vektorgrafiken direkt zu rendern Qt Quick mit Hardware-Beschleunigung und ohne Vorrasterung. Sie unterstützt derzeit das SVG-Format (eine statische Untermenge des SVG Tiny 1.2 Profils).

Qt Shader Tools Modul

  • Unterstützung für Shader, die mit Multiview-Rendering kompatibel sind, wurde vervollständigt. Das Schlüsselwort MULTIVIEW wurde der Qt Shader Tools Build System Integration hinzugefügt.
  • Depfile-Unterstützung für Shader hinzugefügt, die zur Build-Zeit über qt_add_shaders() verarbeitet werden. Das Berühren einer Datei, die über die #include Direktive in einem Shader enthalten ist, löst nun eine Neukompilierung dieser Shader-Datei aus, wenn das Projekt das nächste Mal gebaut wird.

Qt Sql Modul

Qt Test Modul

  • QTEST_THROW_ON_FAIL und QTEST_THROW_ON_SKIP C++-Makros und Umgebungsvariablen hinzugefügt, die, wenn sie definiert sind, die Art und Weise ändern, wie QCOMPARE()/QVERIFY()/QSKIP() usw. die Testfunktion bei einem Fehler beenden. Anstatt einer Rückkehr, die nur die unmittelbar umgebende Funktion verlässt, werfen sie stattdessen eine spezielle Ausnahme, wodurch sie von Unterfunktionen der Testfunktion bis hin zu QtTestLib verlassen werden.
  • Die QTRY_*_WITH_TIMEOUT-Makros akzeptieren nun auch Chrono-Literale (vorher: int milliseconds).
  • QTest::failOnWarning() hat jetzt eine Überladung ohne Parameter, um den häufigen Fall von "fail-on-any-warning" zu unterstützen, ohne dass ein regulärer Ausdruck für "match-everything" konstruiert werden muss.
  • QSignalSpy erbt nicht mehr von QObject. Wenn Ihr Code die Tatsache verwendet, dass QSignalSpy ein QObject ist, müssen Sie dies jetzt umgestalten.
  • Die Methode QSignalSpy::signal() gibt nicht mehr unbedingt ein leeres Byte-Array zurück, wenn die Verbindung fehlgeschlagen ist. Verwenden Sie die vorhandene Methode isValid(), um festzustellen, ob ein bestimmtes QSignalSpy Objekt auf ein gültiges Signal eines gültigen Objekts hört.
  • Die QCOMPARE_xx-Makros können jetzt nur noch QTest::toString()-Erweiterungen finden, die entweder über Argument Dependent Lookup auf dem betreffenden Typ gefunden werden oder eine Instanziierung des QTest::toString<T>()-Templates sind. Dies entspricht dem Verhalten des Makros QCOMPARE().

Qt WebEngine Modul

Werkzeuge

QDoc-Dokumentationsgenerator

  • Sie können nun den \keyword Befehl verwenden, um auf einen Abschnittstitel zu verlinken, um die kontextsensitive Hilfe zu verbessern.
  • QDoc verlinkt nicht mehr fälschlicherweise auf nicht existierende Dokumentation für undokumentierte Eigenschaftszugriffsfunktionen.
  • Das Build-System definiert nicht mehr QDOC2_COMPAT.
  • Bei der Erzeugung von DocBook-Ausgaben bricht QDoc Zeichen nicht mehr mehrfach aus.
  • Der Befehl \instantiates ist veraltet. Verwenden Sie stattdessen den neuen Befehl \nativetype. Das alte Kommando wird nun an das neue delegiert und QDoc generiert einen Hinweis auf die Veraltung des Kommandos.
  • Sie können auto als Rückgabetyp für Funktionen angeben, um den vollständigen Typ in der generierten Dokumentation zu verbergen.
  • Verbesserte Formatierung der Requisiten-Tabelle in der API-Dokumentation.
  • QDoc erzeugt weniger doppelte Berichte in der Ausgabe auf stdout.
  • .qhp Dateien enthalten nun (korrekt) Einträge für Gruppenelemente, die mit dem \ingroup Befehl erstellt wurden, wenn es keine zugehörige \group Dokumentation gibt.
  • QDoc generiert nun Titel für Namespaces in .qhp-Dateien, nicht nur für Klassen und Typen.
  • QDoc analysiert nun korrekt die -DDEFINE=VALUE Kommandozeilenoptionen.
  • QDoc erzeugt neue Warnungen, wenn:
    • qhp Unterprojekt indexTitle Attribut nicht gefunden wird.
    • Wenn der \nativetype Befehl mehrfach für dieselbe C++ Klasse verwendet wird.
    • Beim mehrfachen Erzeugen einer Datei pro Projekt.
    • Funktionen, die zuvor als Überladung ausgewählt wurden und nicht explizit mit dem \overload Befehl markiert sind, die aber aufgrund von Sortierungsänderungen als primäre Signatur ausgewählt werden. Sie müssen entweder vollständig dokumentiert oder mit dem Befehl \overload gekennzeichnet werden.
  • QDoc warnt nicht mehr vor undokumentierten Parametern in überladenen Konstruktoren, und einige unnötige Link-Warnungen wurden entfernt.
  • Link-Warnungen melden nun sinnvolle Stellen.
  • QDoc benötigt nun Clang 17 oder neuer.
  • Das QDoc-Handbuch hat mehrere Aktualisierungen erhalten.
  • Sie können Marken mit dem neuen \tm Befehl markieren. Wenn Sie die Konfigurationsvariable navigation.trademarkspage definieren, wird das Markensymbol (tm) zu einem Link auf diese Seite.
  • Der Befehl \deprecated command akzeptiert nun zukünftige Versionen.
  • QDoc-Makro-Argumente akzeptieren jetzt auch Formatierungsbefehle.
  • Der Befehl \compareswith erlaubt jetzt auch Argumente in Klammern.
  • Die Befehlszeilenoption -outputdir ist jetzt relativ zum aktuellen Arbeitsverzeichnis. Außerdem bringt die Konfigurationsvariable nosubdirs nicht mehr durcheinander, was in outputdir steht.
  • Die unbenutzte und undokumentierte clangdefines Konfigurationsvariable wurde entfernt.
  • QDoc erzeugt keine .qhp.sha1 Dateien mehr.
  • QDoc erzeugt nun eindeutige Verweise auf Einträge im Inhaltsverzeichnis.
  • Bei der Erzeugung von HTML-Ausgaben dekoriert QDoc jetzt nur noch Links zu API-Entitäten mit translate="no".
  • Namenskollisionen bei der Erstellung von Multiprojekt-Dokumentationen wurden reduziert. Dies kann sich in bestimmten Konfigurationen auf die generierten Dateinamen auswirken.
  • CMake-Ziele können jetzt mit dem neuen Befehl \qtcmaketargetitem angegeben werden.
  • Die Unterstützung für subskribierte Funktionsargumente wurde entfernt. Diese Funktion war undokumentiert, unbenutzt und fehlerbehaftet. Ihre Entfernung erspart die Konstruktion und den Versuch des Abgleichs von regulären Ausdrücken für jede einzelne dokumentierte Funktionssignatur und jedes \a Befehlsargument.
  • Links zu Funktionssignaturen haben nun ein einheitlicheres Aussehen.
  • QDoc unterstützt nun automatisch generierte Werte in der QML-Dokumentation aus C++-Enums.
  • Die Konfigurationsvariablen outputprefixes und outputsuffixes gelten nun sowohl für die C++-Typ-Dokumentation als auch für die QML-Typ- und Modul-Dokumentation. Dies kann in Konfigurationen mit mehreren Modulen nützlich sein, in denen zwei oder mehr Module die gleichen Typnamen definieren.

Plattform-Änderungen

Desktop-Plattformen

Arm-basierte Desktops

  • Sie können jetzt Qt und Qt-Anwendungen auf Windows on Arm-Desktops erstellen und entwickeln.
  • Sie können jetzt Qt- und Qt-Anwendungen auf Linux on Arm-Desktops erstellen und entwickeln.

Windows

  • Das Schriftsystem wurde geändert, um DirectWrite als Standard-Backend zu verwenden. Dies ermöglicht einige moderne Funktionen, die mit dem alten GDI-Backend nicht verfügbar waren. Das vorherige Backend ist weiterhin verfügbar und kann durch Übergabe von fontengine=gdi als Parameter an das QPA-Plugin aktiviert werden.

macOS

  • Unterstützung für macOS 15 hinzugefügt
  • Unterstützung für sichere Bereichsränder wurde hinzugefügt, sowohl für die Kameraaussparung in Vollbildanwendungen als auch für Fenster, bei denen der Inhalt in die Titelleiste hineinragt.
  • Flackern bei der Größenänderung von Qt Quick -Fenstern wurde behoben, indem die Metallebene mit Transaktion dargestellt wurde.
  • Aktivierte laufende Animationen bei der Größenänderung von Qt Quick Fenstern.
  • Übernahme der neuen NSCursor-API für Cursor zur Größenänderung von Fensterrahmen
  • Implementierung des NSServicesMenuRequestor-Protokolls für das Dienste-Menü und die Unterstützung von Schreibwerkzeugen.

Wayland-Client unter Linux

  • Es wurde ein neuer Fensterdekorationsstil hinzugefügt, der in GNOME verwendet wird und ein ähnliches Styling wie GNOME verwendet.
  • Der modale Status von Dialogen wird nun über das neue xdg-dialog-v1-Protokoll an den Compositor weitergeleitet.
  • Das Anzeigen eines Fensters fordert nun auch die Aktivierung vom Compositor an (außer wenn Qt::WA_ShowWithoutActivating gesetzt ist).
  • Unterstützung für qtwaylandscanner zum Senden von null für null QString hinzugefügt.
  • Die Optionen PUBLIC_CODE und PRIVATE_CODE wurden zu qt6_generate_wayland_protocol_client_sources hinzugefügt, die die Optionen steuern, die an wayland-scanner übergeben werden.
  • Die Funktion zur Bildschirmaufzeichnung mit dem ScreenCast-Dienst über das XDG Desktop Portal wurde in Qt Multimedia implementiert.

Mobile Plattformen

Android

  • Die minimal unterstützte Version wurde auf Android 9 angehoben.
  • Unterstützung für build.gradle Namespace-Eigenschaft hinzugefügt.
  • Hinzufügen einer CMake-Eigenschaft QT_ANDROID_PACKAGE_NAME zum Festlegen des Paketnamens.
  • Gradle auf 8.10 und AGP auf 8.6.0 aktualisiert.
  • Unterstützung für die Erstellung von AAR-Bibliothekspaketen wurde hinzugefügt.
  • Das native Android-Backend in Qt Multimedia wurde abgeschafft.
  • Wenn Bibliotheken mit QLibrary geöffnet werden, wird JNI_OnLoad nicht mehr standardmäßig aufgerufen.
  • QtQuickView und QML-Einbettung:
    • Unterstützung für starke Typisierung für QtQuickView API hinzugefügt.
    • Es wurde eine API zur Verwaltung von QML-Inhalten hinzugefügt, in deren Rahmen Java-Klassen unter QtQuickView in eigene Klassen verschoben wurden. Dies beinhaltet:
      • QtQuickView.SignalListener zu QtSignalListener.
      • QtQuickView.StatusChangeListener zu QtQmlStatusChangeListener.
      • QtQuickView.Status zu QtQmlStatus.
    • Java-Klassen QtAbstractItemModel, QtAbstractListModel und QtModelIndex hinzugefügt, die QAbstractItemModel, QAbstractListModel bzw. QModelIndex umhüllen.
    • Unterstützung für die Einbettung von QML aus einem Dienst wurde hinzugefügt.

iOS

  • Unterstützung für iOS 18 wurde hinzugefügt.
  • Fehlerhafte Meldung von UIDevice.currentDevice.orientation über QScreen::orientation() behoben
  • Verbesserte Integration der Barrierefreiheit.

visionOS

  • Vorläufige Unterstützung für visionOS wurde hinzugefügt.

Eingebettete Plattformen

QNX

  • Unterstützung für QNX 8.0 als Technologievorschau hinzugefügt.
  • QNX 8.0 hat keine Multimedia-Unterstützung, verwenden Sie -skip qtmultimedia auf configure.

VxWorks

  • Unterstützung für VxWorks 24.03 wurde hinzugefügt.

Boot to Qt

  • Unterstützung für Yocto 5.0 (Scarthgap) wurde hinzugefügt.
  • Die Support Levels für Zielhardware wurden mit neuen unterstützten Boards für Tier 1 aktualisiert:
    • Raspberry Pi 5.
  • Die Unterstützungsebenen für Zielhardware wurden mit neuen unterstützten Boards für Tier 2 aktualisiert:
    • NVIDIA Jetson AGX Orin Developer Kit (hochgestuft von Stufe 3).
    • Raspberry Pi 4 64-bit (herabgestuft von Tier 1).
  • Die Unterstützungsebenen für Zielhardware wurden mit neuen unterstützten Boards für Tier 3 aktualisiert:
    • NXP i.MX95 (als experimentell über das Qt-Kundenportal).
    • Toradex i.MX 95 Verdin Evaluation Kit (als experimentell über das Qt-Kundenportal).
    • StarFive VisionFive 2.
    • ST STM32MP15 Evaluation (herabgestuft von Tier 2).
    • NXP i.MX 8MQuad Evaluierungskit (von Tier 2 herabgestuft).

Liste der API-Änderungen

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

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