Die Qt Company hat die Version des Frameworks Qt 6.9 veröffentlicht, in der die Arbeit an der Stabilisierung und Erweiterung der Qt 6-Zweig fortgesetzt wurde. Qt 6.9 unterstützt die Plattformen Windows 10+, macOS 12+, Linux (Ubuntu 22.04/24.04, openSUSE 15.5, SUSE 15 SP5, RHEL 8.10/9.4, Debian 11.6), iOS 16+, Android 9+(API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS und QNX. Die Quelltexte der Qt-Komponenten werden unter den Lizenzen LGPLv3 und GPLv2 bereitgestellt. Qt 6.9 hat den Status eines Zwischen-Release erhalten, dessen öffentliche Unterstützung für 6 Monate (+ weitere 6 Monate für kommerzielle Nutzer) gewährleistet wird.
Die wichtigsten Änderungen in Qt 6.9:
- Die Entwicklung des Qt Graphs-Moduls, das für die Erstellung von 2D- und 3D-Diagrammen sowie die Visualisierung großer Sammlungen schnell wechselnder Daten gedacht ist, wurde fortgesetzt. Das Modul verwendet Qt Quick 3D und die Rendering-Hardware-Schnittstelle RHI, die verschiedene 3D-APIs (OpenGL, Vulkan, Metal und Direct 3D) unterstützt. In der neuen Version wurde die Unterstützung für Transparenz im QML-Typ Surface3D hinzugefügt, die Klasse QSpline3DSeries zur Darstellung von Daten in Form von 3D-Splines implementiert sowie zusätzliche Anpassungsmöglichkeiten für die Gestaltung von Diagrammen, Achsen und Beschriftungen hinzugefügt. Eine Möglichkeit zur Einbettung von Diagrammen in Anwendungen auf Basis von Qt Quick 3D wurde geschaffen, indem die Eigenschaft „importScene“ in View3D-Szenen verwendet wird. Die Konfiguration von Eingabeparametern in 2D-Diagrammen wurde vereinfacht. In QGraphsView wurde die Unterstützung für die genaue Positionierung des rechteckigen Bereichs (plotArea) zur Anzeige des Diagramms hinzugefügt.

- Es wurde die Möglichkeit implementiert, Emoji-Codes im Text zu erkennen und die korrekten farbigen Schriftarten für deren Darstellung zu verwenden. In QFontDatabase wurde eine neue API zur Auswahl der Schriftfamilie für Emojis hinzugefügt. Derzeit werden Schriftarten in den Formaten CBDT und COLRv1 unterstützt. Bei Bedarf kann das Parsen von Emojis deaktiviert werden.


- Eine API zur Erstellung von Benutzeroberflächen wurde hinzugefügt, in denen die Benutzeroberflächenelemente mit dem Inhalt vermischt werden und die Benutzer nicht ablenken (der Inhalt beansprucht den gesamten Fensterraum ohne Hervorhebung durch einen Titel). Für die Erweiterung des Anwendungsoberflächenbereichs auf das gesamte Fenster wurde das Flag Qt.ExpandedClientAreaHint hinzugefügt, und um Bereiche mit technischen Elementen wie Titel, Fußzeile und Menü zu kennzeichnen, die sich nicht mit den inneren Elementen der Anwendung überschneiden sollen, wurde in Qt Quick die Eigenschaft „SafeArea“ implementiert.

- Im Qt SVG-Modul wurde die erste Unterstützung für CSS-Animationen hinzugefügt, die bisher nur für die Eigenschaften „color“, „fill“, „stroke“ und „transform“ anwendbar ist.
- Es wurde an der Leistungssteigerung gearbeitet.
- Auf Systemen mit hybriden CPU, die mit separaten leistungsstarken und energieeffizienten Kernen ausgestattet sind, wurde in QThread die Möglichkeit hinzugefügt, dem Scheduler Hinweise zu geben, auf welchem Typ von CPU-Kernen der angegebene Thread ausgeführt werden soll.
- Für Anwendungen, die QQuickPaintedItem mit OpenGL verwenden, ist der Modus FramebufferObject erlaubt, bei dem hardwarebeschleunigtes Rendering angewendet wird.
- Im RHI-Backend (Rendering Hardware Interface) für OpenGL ES wurde eine Erweiterung für Multisampling-Rendering aktiviert, die die Leistung von Qt Quick und Qt Quick 3D auf modernen GPUs verbessert.
- Im RHI-Backend für Direct 3D wurde ein separater Thread hinzugefügt, um das Ende des vertikalen Bildaufbaus (vblank) zu überwachen, was Verzögerungen in interaktiven Benutzeroberflächen reduzieren konnte.
- In allen RHI-Backends außer OpenGL wurde die Unterstützung des Verfahrens Variable Rate Shading (VRS) hinzugefügt, mit dem in Virtual-Reality-Anwendungen, die auf Quick 3D XR basieren, die Darstellung in Abhängigkeit von der Blickrichtung des Benutzers sichergestellt wird.
- In Qt Quick wurde ein neues Element RectangularShadow vorgeschlagen, das die CPU-Belastung bei der Verwendung von Schattierungs- und Glüheffekten in der Benutzeroberfläche senkt.
- Im QHeaderView-Klasse wurde der Speicherverbrauch bei Deaktivierung der Größenänderung und Umgruppierung von Sektionen erheblich reduziert.
- In Quick 3D wurde die Technik „Weighted Blended“ umgesetzt, die es ermöglicht, transparente Objekte ohne separate Tiefensortierungsoperationen darzustellen. Die umgesetzte Technik verhindert das Auftreten von Artefakten aufgrund falscher Sortierung, die entstehen, wenn sich Objekte überlappen. Der CPU-Aufwand und der Speicherverbrauch der neuen Methode sind identisch mit denen der alten.

- Das Modul Qt Network Authorization wurde hinzugefügt, das eine API für die Authentifizierung mit den Protokollen OAuth1 und OAuth2 bereitstellt, die verwendet werden können, um auf Online-Dienste zuzugreifen, ohne das Benutzerpasswort preiszugeben.
- Es wurden Arbeiten zur Verstärkung des Schutzes des Qt HTTP Server-Moduls durchgeführt. In QHttpServerConfiguration wurde die Möglichkeit hinzugefügt, die maximale Anzahl eingehender Anfragen zu begrenzen. In QHttp2Configuration wurde für HTTP/2-Clients die Unterstützung zur Einstellung der maximal gleichzeitig erzeugten Streams hinzugefügt.
- Im QML Language Server, Implementierungen Server LSP (Language Server Protocol) für QML stellt Informationen zur Struktur von QML bereit, wodurch eine hierarchische Darstellung der QML-Struktur in Code-Editoren und integrierten Entwicklungsumgebungen angezeigt werden kann.
- In Qt Quick wurde ein neuer ContextMenu-Komponenten hinzugefügt, der das Binden von Kontextmenüs an Elemente erleichtert, die durch plattformspezifische Ereignisse, wie einen Rechtsklick, geöffnet werden. Standardmäßig wurden Kontextmenüs für die Komponenten TextField und TextArea hinzugefügt.
Quelle: opennet.ru





