Die Qt Company hat die Version Qt 6.10 des Frameworks veröffentlicht, das die Stabilisierung und Erweiterung der Funktionen der Qt 6-Reihe fortsetzt. Qt 6.10 bietet Unterstützung für die Plattformen Windows 10+, macOS 13+, Linux (Ubuntu 22.04/24.04, openSUSE 15.6, SUSE 15 SP6, RHEL 8.10/9.4, Debian 11.6), iOS 16+, Android 9+(API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS und QNX. Der Quellcode der Qt-Komponenten wird unter den Lizenzen LGPLv3 und GPLv2 bereitgestellt. Qt 6.10 hat den Status einer Zwischenversion, die öffentliche Unterstützung für 6 Monate (+ weitere 6 Monate für kommerzielle Nutzer) erhalten wird.
Hauptänderungen in Qt 6.10:
- Der QML-Typ FlexboxLayout wurde hinzugefügt, um adaptive Layouts von Benutzerschnittstellenelementen entsprechend dem Flexbox-Konzept, das in CSS zur Vereinfachung der vertikalen Ausrichtung von Elementen verwendet wird, zu ermöglichen. Die Implementierung unterstützt Konzepte, die bereits in Qt Quick verwendet werden, wie das Anheften von Eigenschaften zur Anpassung des Verhaltens einzelner Elemente im Layout.
- In den Modulen Qt Quick Scene Graph und Qt Quick Shapes wurden Funktionen für die Arbeit mit animierter Vektorgrafik implementiert, die aus Bildern in den Formaten SVG und Lottie erstellt wird. Im Qt Lottie-Modul wurde die Unterstützung für Lottie-Dateien erweitert. Die Möglichkeit, das Lottie-Format im VectorImage-Typ zu verwenden, wurde hinzugefügt, um Lottie-Dateien mit Skalierung und Hardwarebeschleunigung anzuzeigen.
- Im Qt Quick Control-Set ist das neue Element SearchField enthalten, das ein spezialisiertes Eingabefeld für die Verwendung mit Suchfunktionen implementiert, welches relevante Daten in einem Popup-Fenster anzeigt, gefiltert nach dem bereits in das Feld eingegebenen Text. Das Element unterstützt verschiedene integrierte Qt-Stile und ermöglicht ein Design, das auf allen gängigen Plattformen vertraut ist.
- Klassen zur Vereinfachung der Integration von C++-Datenmodellen mit QML und Qt Quick wurden hinzugefügt:
- QRangeModel – eine Wrapper-Klasse über QAbstractItemModel für die direkte Nutzung in Benutzerschnittstellenelementen basierend auf QML und Qt Quick für alle aufzählbaren Typen aus C++, einschließlich std::vector, std::tuples und std::array. std::vector values = {1, 2, 3, 4, 5}; auto model = new QRangeModel(values); QListView *listView = new QListView; listView->setModel(model);
- Im QML-Typ DelegateModel wurde die Eigenschaft delegateModelAccess hinzugefügt, die den Wert DelegateModel.ReadWrite annehmen kann, um das Schreiben in das Modell über die Kontextattribute, das Modellobjekt oder erforderliche Eigenschaften zu ermöglichen.
- Der QML-Typ Synchronizer wurde hinzugefügt, der die Synchronisierung des Status eines Steuerelements mit dem Wert aus dem Modell ermöglicht. Der Synchronizer garantiert, dass mehrere Eigenschaften denselben Wert enthalten – die Änderung einer der synchronisierten Eigenschaften führt automatisch zur Änderung aller anderen.
- Der QML-Typ TreeModel wurde hinzugefügt, der es ermöglicht, baumartige Strukturen in C++ direkt im QML-Dokument unter Verwendung von Schlüssel-Wert-Paaren und einer Syntax, die an JSON erinnert, zu platzieren.
- Der QML-Typ SortFilterProxyModel wurde hinzugefügt, der es ermöglicht, Daten direkt aus QML zu sortieren und zu filtern, ohne C++-Code verwenden zu müssen.
- In Qt Quick 3D wurden die Möglichkeiten zur Erstellung von Lichtkarten beim Rendering in hoher Qualität erweitert, und die Unterstützung für die rückwärtige Anwendung von Effekten mit Partikeln wurde hinzugefügt, um einen Zusammenstoßseffekt von Regen oder Schnee mit dem Modell zu erzeugen.
- In Qt Graphs wurde ein Flächentyp mit Füllung hinzugefügt, und es wurde die Möglichkeit implementiert, einen Querschnitt von dreidimensionalen Grafiken in ein 2D-Bild für den Druck umzuwandeln.
- In Qt Widgets wurde die Implementierung von benutzerdefinierten Delegate-Objekten vereinfacht, die Verwaltung von Drag-and-Drop-Operationen verbessert und die Möglichkeit zur individuellen Anpassung der Layoutgrößen hinzugefügt.
- In Qt Core wurde die Arbeit mit Lokalen, XML-Dokumenten und Ketten von asynchronen Operationen (Continuation Chain) verbessert.
- Die Mittel für Menschen mit Behinderungen wurden erweitert. Eingebaute Stile für kontrastreiche Informationsdarstellung wurden angepasst, um den Systemeinstellungen für Kontrast zu entsprechen, sodass Qt-Anwendungen visuell dem allgemeinen Stil entsprechen. Steuerelemente und Widgets von Qt wurden für die Verwendung mit Screenreadern optimiert.
- Die Unterstützung für mobile Plattformen Android 15 und 16 wurde hinzugefügt, einschließlich der Möglichkeit, auf Geräten zu arbeiten, die Seiten mit einer Größe von 16 KB verwenden.
- Das Qt Jenny 1.0 Toolkit wurde vorgestellt, das die Integration von Qt-Anwendungen mit dem Android Java API erleichtert und die automatische Generierung von C++ APIs aus annotierten Java-Klassen unterstützt, die es ermöglichen, direkt aus Qt-Code auf Android-Dienste wie BatteryManager, PowerManager und AudioManager zuzugreifen.
- Es wurden Funktionen für die korrekte Anzeige von Bildschirmschonern auf der Android-Plattform hinzugefügt.
- Es wird volle Unterstützung für die Plattformen macOS 26 und iOS 26 gewährleistet, in denen die visuelle Sprache Liquid Glass eingesetzt und die Rendering-Architektur geändert wurde.
- Das Modul Qt WebView für die Plattform Windows hat die Möglichkeit hinzugefügt, Web-Inhalte in Qt-Anwendungen mit der WebView2-Engine basierend auf Microsoft Edge anstelle der Chromium-basierten WebEngine einzubinden.
- Im Modul Qt Multimedia wurde ein Backend für die Nutzung von Multimedia hinzugefügt. Server PipeWire auf der Plattform Linux.
- Der Boot2Qt-Stack wurde aktualisiert, der zur Erstellung von bootfähigen mobilen Systemen mit einer Umgebung basierend auf Qt und QML verwendet werden kann. Die Systemumgebung in Boot2Qt wurde auf die Plattform Yocto 5.2 aktualisiert. Unterstützung für die Ezurio Nitrogen-Plattform wurde hinzugefügt.
Quelle: opennet.ru
