Das Unternehmen Qt Company hat die Veröffentlichung des Frameworks Qt 6.1 bekannt gegeben, das die Stabilisierung und Erweiterung der Funktionen der Qt 6-Serie fortsetzt. Qt 6.1 unterstützt die Plattformen Windows 10, macOS 10.14+, Linux (Ubuntu 20.04+, CentOS 8.1+, OpenSuSE 15.1+), iOS 13+ und Android (API 23+). Die Quelltexte der Qt-Komponenten werden unter den Lizenzen LGPLv3 und GPLv2 bereitgestellt.
Die wichtigsten Verbesserungen in Qt 6.1 beziehen sich hauptsächlich auf die Integration von Modulen, die in Qt 5.15 verfügbar waren, aber nicht rechtzeitig für die erste Veröffentlichung von Qt 6 fertiggestellt werden konnten. Insbesondere wurden folgende Module integriert:
- Active Qt – Unterstützung von COM- und ActiveX-Steuerelementen auf der Windows-Plattform.
- Qt Charts – Erstellung von Diagrammen.
- Qt Data Visualization – Visualisierung statischer und dynamischer Daten.
- Qt Device Utilities – Teil des Pakets Qt for Device Creation.
- Qt Graphical Effect – eine Schicht zur Vereinfachung der Portierung von Anwendungen auf Qt 6.
- Qt Lottie – rendert Grafiken und Animationen, die im JSON-Format mittels des Bodymovin-Plugins für Adobe After Effects exportiert wurden. Enthält einen integrierten Mikro-Engine zur Ausführung von Animationen, Zuschnitten, Layerverarbeitung und anderen Effekten.
- Qt State Machine — ein Framework zur Erstellung von ereignisgesteuerten Konstruktionen und zur Implementierung eines Endlichen Automaten auf Basis von SCXML.
- Qt Virtual Keyboard — Implementierung einer virtuellen Tastatur.
Module, die noch nicht übertragen wurden und für die LTS-Version Qt 6.2, die für September geplant ist, erwartet werden.
- Qt Bluetooth
- Qt Multimedia
- Qt NFC
- Qt Positioning
- Qt Quick Dialogs: Ordner, Nachrichtenbox
- Qt Remote Objects
- Qt Sensors
- Qt SerialBus
- Qt SerialPort
- Qt WebChannel
- Qt WebEngine
- Qt WebSockets
- Qt WebView
Änderungen in Qt 6.1:
- In Qt Core wurden Verbesserungen hinsichtlich der Benutzerfreundlichkeit und der Vereinfachung der API vorgenommen. Es wurden Funktionen removeIf() hinzugefügt und die Anzahl der Klassen, die die Methode erase_if() unterstützen, erweitert. Methoden, die in QString verfügbar sind, aber in QStringView fehlen, wurden implementiert. Überlaufgeschützte Funktionen für Addition, Subtraktion und Multiplikation wurden hinzugefügt. Die Unterstützung für 16-Bit-Gleitkommawerte wurde verbessert. Das API für die Eigenschaftsbindung (property binding), eingeführt in Qt 6.0, wurde aktualisiert. Neue Klassen zur Vereinfachung der Integration mit Java, QJniEnvironment und QJniObject, die auf der Android-Plattform häufig benötigt werden, wurden hinzugefügt.
- In Qt Gui wurde die Unterstützung für die Grafik-API Vulkan 1.1 und 1.2 verbessert. Eine neue Klasse QUrlResourceProvider wurde hinzugefügt, die in QLabel verwendet wird und es ermöglicht, ohne erneute Implementierung von loadResource() und ohne Erstellung von Unterklassen von QTextDocument auszukommen. Es wurde die Möglichkeit implementiert, benutzerdefinierte Funktionen zur Korrektur von Farbkomponenten im QColorSpace-Klasse anzuwenden.
- In Qt Network wurde die Klasse QNetworkInformation eingeführt, die es ermöglicht, den Netzwerkstatus im System zu bestimmen. Der HTTP-Cookie-Handler unterstützt jetzt den SameSite-Modus.
- In Qt QML wurden die Optionen QJSPrimitiveValue und QJSManagedValue implementiert, um eine genauere Kontrolle über die Ausführung von JavaScript zu ermöglichen.
- In Qt Quick 3D wurde die Unterstützung für das Morphing von Zielanimationen hinzugefügt und experimentelle Unterstützung für instanziertes Rendering implementiert, mit dem in einem Durchlauf viele Kopien ähnlicher Objekte, die sich an den Randbereichen der Szene befinden, gerendert werden können. Diese Methode beschleunigt das Rendering erheblich, wenn viele ähnliche Objekte in der Szene vorhanden sind. Auf Basis dieser Methode wurde die Unterstützung für das Rendern von dreidimensionalen Partikeln implementiert.
Quelle: opennet.ru
