Firma Qt Company opublikowała wydanie frameworka Qt 6.5, w którym kontynuowane są prace nad stabilizacją i rozszerzaniem funkcjonalności wersji Qt 6. W Qt 6.5 zapewniono wsparcie dla platform Windows 10+, macOS 11+, Linux (Ubuntu 20.04, openSUSE 15.4, SUSE 15 SP4, RHEL 8.4/9.0), iOS 14+, Android 8+ (API 23+), webOS, WebAssembly, INTEGRITY oraz QNX. Kod źródłowy komponentów Qt dostarczany jest na licencjach LGPLv3 oraz GPLv2.
Qt 6.5 uzyskał status wersji LTS, w ramach której dla użytkowników licencji komercyjnej aktualizacje będą wydawane przez trzy lata (dla pozostałych aktualizacje będą publikowane przez sześć miesięcy do wydania kolejnej znaczącej wersji). Wsparcie dla poprzedniej wersji LTS Qt 6.2 potrwa do 30 września 2024 roku. Wersja Qt 5.15 będzie wspierana do maja 2025 roku.
Główne zmiany w Qt 6.5:
- Stabilizowany i przeniesiony do kategorii w pełni wspieranych moduł Qt Quick 3D Physics, który zapewnia API do symulacji procesów fizycznych, które można wykorzystać wraz z Qt Quick 3D do realistycznej interakcji i poruszania obiektami w scenach 3D. Implementacja oparta jest na silniku PhysX.
- Dodano wsparcie dla ciemnego motywu w systemie Windows. Automatyczne zastosowanie aktywowanego w systemie ciemnego motywu oraz dostosowanie ramki i nagłówka, jeśli w aplikacji używany jest styl, niezmieniający palety. W aplikacji można skonfigurować własną reakcję na zmiany w systemowym motywie poprzez obsługę zmiany właściwości QStyleHints::colorScheme.

- W Qt Quick Controls styl Material dla Androida został dostosowany do zaleceń Material 3. Wdrożono pełny styl dla iOS. Dodano API do zmiany wyglądu (na przykład containerStyle dla TextField lub TextArea, lub roundedScale dla przycisków i wyskakujących okienek).

- Na platformie macOS w aplikacjach, które używają QMessageBox lub QErrorMessage, zapewniono wyświetlanie natywnych dialogów dla platformy.

- Dla Wayland dodano interfejs programistyczny QNativeInterface::QWaylandApplication, który umożliwia bezpośredni dostęp do natywnych obiektów dla Wayland używanych w wewnętrznych strukturach Qt oraz uzyskanie informacji o ostatnich działaniach użytkownika, które mogą być wymagane do komunikacji z rozszerzeniami protokołu Wayland. Nowy interfejs programistyczny został zaimplementowany w przestrzeni nazw QNativeInterface, w której również udostępniane są wywołania do natywnego API platform X11 i Android.
- Dodano wsparcie dla platformy Android 12 i mimo znaczących zmian w tej gałęzi zachowano możliwość tworzenia uniwersalnych pakietów dla Androida, które mogą działać na urządzeniach z różnymi wersjami Androida, począwszy od Androida 8.
- Zaktualizowano stos Boot2Qt, który może być używany do tworzenia rozruchowych systemów mobilnych z środowiskiem opartym na Qt i QML. Środowisko systemowe w Boot2Qt zostało zaktualizowane do platformy Yocto 4.1 (Langdale).
- Rozpoczęto tworzenie pakietów dla Debian 11, na które obejmuje wsparcie komercyjne.
- Rozszerzone możliwości platformy WebAssembly, pozwalającej na tworzenie aplikacji Qt działających w przeglądarkach internetowych i przenośnych między różnymi platformami sprzętowymi. Aplikacje kompilowane dla platformy WebAssembly, dzięki kompilacji JIT, działają z wydajnością bliską kodowi natywnemu, mogą korzystać z Qt Quick, Qt Quick 3D oraz dostępnych w Qt narzędzi wizualizacyjnych. W nowej wersji dodano wsparcie dla renderowania wideo i używania w widgetach narzędzi dla osób z niepełnosprawnościami.
- Silnik webowy Qt WebEngine zaktualizowano do bazy kodu Chromium 110. Na platformie Linux zaimplementowano wsparcie dla sprzętowego przyspieszenia renderowania wideo przy użyciu graficznego API Vulkan w środowiskach opartych na X11 i Wayland.
- Dodano moduł Qt Quick Effects, który zapewnia gotowe efekty graficzne dla interfejsu opartego na Qt Quick. Własne efekty można tworzyć od podstaw lub uzyskiwać poprzez łączenie już istniejących efektów przy użyciu narzędzia Qt Quick Effect Maker.
- W module Qt Quick 3D dodano możliwość konfigurowania poziomu szczegółowości modeli (na przykład dla obiektów oddalonych od kamery można generować prostsze siatki). W API SceneEnvironment zaimplementowano wsparcie dla mgły oraz stopniowego znikania odległych obiektów. W ExtendedSceneEnvironment udostępniono możliwości tworzenia złożonych efektów post-processingu oraz łączenia takich efektów jak głębia ostrości, blask oraz odblaski.
- Dodano eksperymentalny moduł Qt GRPC z obsługą protokołów gRPC oraz Protocol Buffer, który umożliwia dostęp do usług gRPC oraz serializację klas Qt przy użyciu Protobuf.
- W module Qt Network dodano obsługę konfigurowania połączeń HTTP 1.
- W module Qt Serial Bus dodano eksperymentalne klasy do pracy z magistralą CAN, które mogą być wykorzystywane do kodowania i dekodowania wiadomości CAN, przetwarzania ramek oraz rozkładu plików DBC.
- Ożywiono moduł Qt Location, który dostarcza aplikacjom narzędzi do integracji map, nawigacji oraz oznaczania interesujących miejsc (POI). Moduł wspiera interfejs wtyczek, dzięki czemu można podłączać zaplecza do pracy z różnymi dostawcami usług i tworzyć rozszerzenia API. Moduł ma obecnie status eksperymentalny i wspiera tylko zaplecze dla map opartych na Open Street Maps.

- Rozszerzono możliwości modułów Qt Core, Qt GUI, Qt Multimedia, Qt QML, Qt Quick Compiler, Qt Widgets.
- Przeprowadzono wiele prac mających na celu zwiększenie stabilności, zamknięto około 3500 raportów o błędach.
Źródło: opennet.ru




