Die Qt Company hat die Framework-Version Qt 6.10 veröffentlicht, die die Stabilisierung und Funktionalität der Qt 6-Reihe weiter vorantreibt. 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. Die Quelltexte der Qt-Komponenten werden unter den Lizenzen LGPLv3 und GPLv2 bereitgestellt. Qt 6.10 hat den Status einer Zwischenversion, die für 6 Monate allgemein unterstützt wird (plus weitere 6 Monate für kommerzielle Benutzer).
Wesentliche Änderungen in Qt 6.10:
- Der QML-Typ FlexboxLayout wurde hinzugefügt, um eine adaptive Anordnung von Interface-Elementen gemäß dem Flexbox-Konzept zu ermöglichen, das in CSS verwendet wird, um eine vereinfachte vertikale Ausrichtung von Elementen zu gewährleisten. Die Implementierung unterstützt bereits in Qt Quick verwendete Konzepte wie das Anheften von Eigenschaften zur Anpassung des Verhaltens einzelner Elemente im Layout.
- Die Module Qt Quick Scene Graph und Qt Quick Shapes bieten jetzt Funktionen zur Arbeit mit animierter Vektorgrafik, die aus Bildern in den Formaten SVG und Lottie erstellt wurde. Im Qt Lottie-Modul wurde die Unterstützung für Lottie-Dateien erweitert. Es wurde die Möglichkeit hinzugefügt, das Lottie-Format im Typ VectorImage zu nutzen, um Lottie-Dateien mit Skalierung und hardwarebeschleunigter Darstellung anzuzeigen.
- Im Qt Quick Control-Set wurde ein neues Element SearchField implementiert, das ein spezialisiertes Eingabefeld für die Nutzung mit Suchfunktionen bereitstellt, das relevante Daten in einem Popup-Fenster anzeigt, die je nach bereits eingegebenem Text gefiltert werden. Das Element unterstützt verschiedene integrierte Qt-Stile und ermöglicht ein Design, das für alle gängigen Plattformen typisch ist.
- Neue 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 Verwendung in Interface-Elementen 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 Eigenschaften des Kontexts, das Modellobjekt oder erforderliche Eigenschaften zu ermöglichen.
- Ein neuer QML-Typ Synchronizer wurde hinzugefügt, der die Aufgabe hat, den Zustand eines Steuerelements mit dem Wert aus dem Modell zu synchronisieren. Der Synchronizer stellt sicher, dass mehrere Eigenschaften denselben Wert enthalten - die Änderung einer der synchronisierten Eigenschaften führt automatisch zur Änderung aller anderen.
- Ein 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 sowie einer JSON-ähnlichen Syntax aus Wörterbüchern und Arrays zu platzieren.
- Ein QML-Typ SortFilterProxyModel wurde hinzugefügt, der es ermöglicht, Daten direkt aus QML zu sortieren und zu filtern, ohne dass C++-Code verwendet werden muss.
- In Qt Quick 3D wurden die Möglichkeiten zur Erstellung von Lichtkarten bei der Hochqualiät-Renderung erweitert, und die Unterstützung für die rückseitige Anwendung von Partikeleffekten wurde hinzugefügt, um den Effekt von Regen- oder Schneekollisionen mit Modellen zu erzeugen.
- In Qt Graphs wurde ein Oberflächentyp mit Füllung hinzugefügt, und es wurde die Möglichkeit implementiert, einen Schnitt von 3D-Diagrammen in ein 2D-Bild für den Druck zu konvertieren.
- In Qt Widgets wurde die Implementierung benutzerdefinierter Delegate-Objekte vereinfacht, das Drag&Drop-Management verbessert und die Möglichkeit zur individuellen Anpassung der Layout-Größe hinzugefügt.
- In Qt Core wurde die Arbeit mit Lokalen, XML-Dokumenten und Sequenzen asynchroner Operationen (Fortsetzungs-Kette) verbessert.
- Die Hilfsmittel für Menschen mit Behinderungen wurden erweitert. Die eingebauten Kontrastdesigns wurden an die Systemeinstellungen für Kontrast angepasst, damit Qt-Anwendungen visuell zum allgemeinen Stil passen. Steuerelemente und Widgets von Qt wurden verbessert, um mit Bildschirmen zu arbeiten.
- Unterstützung für mobile Plattformen Android 15 und 16 wurde hinzugefügt, einschließlich der Möglichkeit zur Nutzung auf Geräten mit 16 kB großen Speicherseiten.
- Das Qt Jenny 1.0 Toolkit wurde vorgestellt, das die Integration von Qt-Anwendungen mit dem Android Java API vereinfacht und die automatische Generierung von C++-APIs aus annotierten Java-Klassen unterstützt, die einen direkten Zugriff von Qt-Code auf Android-Dienste wie BatteryManager, PowerManager und AudioManager ermöglichen.
- Funktionen zur korrekten Anzeige eines Bildschirmschoners auf der Android-Plattform wurden hinzugefügt.
- Vollständige Unterstützung für die Plattformen macOS 26 und iOS 26 wurde gewährleistet, bei denen die visuelle Sprache Liquid Glass verwendet wird und die Renderarchitektur geändert wurde.
- Im Qt WebView-Modul auf der Windows-Plattform wurde die Möglichkeit hinzugefügt, Webinhalte in Qt-Anwendungen mit der WebView2-Engine auf Basis von Microsoft Edge anstelle der Chromium-basierten WebEngine einzubetten.
- Im Qt Multimedia-Modul wurde ein Backend für die Nutzung von Multimedia hinzugefügt. Server PipeWire auf der Linux-Plattform.
- Der Boot2Qt-Stack wurde aktualisiert, der zur Erstellung von bootfähigen mobilen Systemen mit einer Umgebung auf Basis von Qt und QML verwendet werden kann. Die systemumgebung in Boot2Qt wurde auf die Yocto-Plattform 5.2 aktualisiert. Unterstützung für Ezurio Nitrogen-Plattformen wurde hinzugefügt.
Quelle: opennet.ru
