Firma Qt Company opublikowała wersję frameworka Qt 6.10, w której kontynuowano prace nad stabilizacją i rozszerzaniem funkcjonalności gałęzi Qt 6. W Qt 6.10 wprowadzono wsparcie dla platform 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 i QNX. Źródłowe teksty komponentów Qt są dostarczane na licencjach LGPLv3 i GPLv2. Qt 6.10 uzyskał status wersji pośredniej, a wsparcie publiczne będzie trwało 6 miesięcy (+ dodatkowe 6 miesięcy dla użytkowników komercyjnych).
Główne zmiany w Qt 6.10:
- Dodano typ QML FlexboxLayout do adaptacyjnego układu elementów interfejsu zgodnie z koncepcją Flexbox stosowaną w CSS, co ułatwia pionowe wyrównanie elementów. Implementacja wspiera koncepcje już stosowane w Qt Quick, takie jak przypinanie właściwości do konfigurowania zachowania poszczególnych elementów w układzie.
- W modułach Qt Quick Scene Graph i Qt Quick Shapes wprowadzono możliwości pracy z animowaną grafiką wektorową, tworzoną z obrazów w formatach SVG i Lottie. W module Qt Lottie rozszerzono wsparcie dla plików w formacie Lottie. Dodano możliwość wykorzystania formatu Lottie w typie VectorImage do wyświetlania plików Lottie z skalowaniem i przyspieszeniem sprzętowym.
- W zbiorze Qt Quick Control dodano nowy element SearchField z implementacją wyspecjalizowanego pola wejściowego do użycia z funkcjonalnością wyszukiwania, które pozwala na wyświetlanie odpowiednich danych w oknie wyskakującym, filtrowanych w zależności od tekstu już wpisanego w polu. Element wspiera różne wbudowane style Qt i pozwala na uzyskanie dekoracji zgodnych z wszystkimi głównymi platformami.
- Dodano klasy ułatwiające integrację modeli danych C++ z QML i Qt Quick:
- QRangeModel — obiekt opakowujący QAbstractItemModel do bezpośredniego użycia w elementach interfejsu opartych na QML i Qt Quick dla wszelkich typów enumerowanych z C++, w tym std::vector, std::tuples i std::array. std::vector values = {1, 2, 3, 4, 5}; auto model = new QRangeModel(values); QListView *listView = new QListView; listView->setModel(model);
- W typie QML DelegateModel dodano właściwość delegateModelAccess, która może przyjmować wartość DelegateModel.ReadWrite, umożliwiając zapis do modelu przez właściwości kontekstu, obiekt modelu lub wymagane właściwości.
- Dodano typ QML Synchronizer, który rozwiązuję problem synchronizacji stanu elementu sterującego z wartością z modelu. Synchronizer zapewnia, że kilka właściwości zawiera tę samą wartość — zmiana jednej z synchronizowanych właściwości automatycznie prowadzi do zmiany wszystkich pozostałych.
- Dodano typ QML TreeModel, który umożliwia umieszczanie struktur drzewiastych C++ bezpośrednio w dokumencie QML, korzystając z par klucz-wartość oraz składni słowników i tablic, przypominającej JSON.
- Dodano typ QML SortFilterProxyModel, który umożliwia sortowanie i filtrowanie danych bezpośrednio z QML, bez użycia kodu C++.
- W Qt Quick 3D rozszerzono możliwości tworzenia map oświetlenia podczas renderowania w wysokiej jakości, a także dodano wsparcie dla odwrotnego zastosowania efektów z cząstkami, aby stworzyć efekt kolizji deszczu lub śniegu z modelem.
- W Qt Graphs dodano typ powierzchni z wypełnieniem oraz zrealizowano możliwość przekształcania przekrojów trójwymiarowych wykresów na obrazy 2D do drukowania.
- W Qt Widgets uproszczono realizację użytkowniczych obiektów delegate, poprawiono zarządzanie operacjami drag&drop oraz dodano możliwość indywidualnego dostosowania rozmiaru układów.
- W Qt Core poprawiono obsługę lokalizacji, dokumentów XML i sekwencji asynchronicznych operacji (continuation chain).
- Rozszerzono środki dla osób z ograniczeniami możliwości. Wbudowane style kontrastowe informacji dostosowane do użycia systemowych ustawień kontrastu, aby aplikacje Qt wizualnie odpowiadały ogólnemu stylowi. Elementy sterujące i widżety Qt zostały udoskonalone do użycia z czytnikami ekranu.
- Dodano wsparcie dla mobilnych platform Android 15 i 16, w tym możliwość pracy na urządzeniach, w których wykorzystywane są strony pamięci o rozmiarze 16 KB.
- Przedstawiono narzędzie Qt Jenny 1.0, które upraszcza integrację aplikacji Qt z Android Java API i wspiera automatyczne generowanie C++ API z adnotowanych klas Java, pozwalających na bezpośrednie odwoływanie się z kodu Qt do takich usług Android jak BatteryManager, PowerManager i AudioManager.
- Dodano możliwości poprawnego wyświetlania wygaszacza ekranu na platformie Android.
- Pełne wsparcie dla platform macOS 26 i iOS 26, które wykorzystują wizualny język Liquid Glass i zmienioną architekturę renderowania.
- W module Qt WebView na platformie Windows dodano możliwość osadzania treści webowych w aplikacjach Qt z wykorzystaniem silnika WebView2 opartego na Microsoft Edge zamiast silnika WebEngine opartego na Chromium.
- W module Qt Multimedia dodano backend do wykorzystania multimediów z PipeWire na platformie Linux. serwera Zaktualizowano stos Boot2Qt, który może być używany do tworzenia przenośnych systemów mobilnych z środowiskiem opartym na Qt i QML. Środowisko systemowe w Boot2Qt zaktualizowano do platformy Yocto 5.2. Dodano wsparcie dla płyt Ezurio Nitrogen.
- Firma Qt Company opublikowała wydanie frameworka Qt 6.10, w którym kontynuowane są prace nad stabilizacją i rozbudową funkcjonalności gałęzi Qt 6.
Źródło: opennet.ru
