Firma Qt Company opublikowała wydanie frameworka Qt 6.6, w którym kontynuowane są prace nad stabilizacją i rozszerzaniem funkcjonalności gałęzi Qt 6. W Qt 6.6 zapewniono wsparcie dla platform Windows 10+, macOS 11+, Linux (Ubuntu 22.04, openSUSE 15.4, SUSE 15 SP4, RHEL 8.6/9.0), iOS 14+, Android 8+ (API 23+), webOS, WebAssembly, INTEGRITY oraz QNX. Źródła komponentów Qt dostarczane są na licencjach LGPLv3 i GPLv2.
Główne zmiany w Qt 6.6:
- W module Qt Quick wprowadzono eksperymentalne wsparcie dla adaptacyjnego układu interfejsu. Do dynamicznej zmiany układu interfejsu w zależności od rozmiaru okna oraz automatycznego rozmieszczania elementów z uwzględnieniem struktury bieżącego układu zaproponowano klasę LayoutItemProxy, a w module Qt Quick Layouts udostępniono możliwość użycia jednolitych rozmiarów komórek dla układów z rozmieszczeniem elementów w siatce, wierszach i kolumnach.

- W Qt Quick dodano wsparcie dla trybów zaznaczania (właściwość selectionMode) w typie QML TableView (na przykład można kontrolować zaznaczanie komórek, wierszy, kolumn i zbiorów komórek), umożliwiono zmianę właściwości rootIndex, a w typie QML TreeView rozszerzono zarządzanie formatowaniem pasków przewijania (scroll-deceleration) w typie QML Flickable, zrealizowano automatyczne skracanie ścieżek plików. Umożliwiono dostęp z QML do API zarządzania uprawnieniami.
- Dodano eksperymentalny moduł Qt Graphs, mający na celu zapewnienie uniwersalnego modułu do wizualizacji dużych zbiorów szybko zmieniających się danych oraz budowy różnych rodzajów wykresów. Moduł rozwijany jest jako uniwersalna alternatywa dla starego modułu Qt DataVisualization opartego na OpenGL oraz modułu Qt Charts. Moduł nadal znajduje się w fazie rozwoju i obecnie koncentruje się na odtwarzaniu funkcjonalności Qt DataVisualization na bazie Qt Quick 3D oraz wykorzystaniu nowego silnika renderowania (RHI, Rendering Hardware Interface), wspierającego różne API 3D (OpenGL, Vulkan, Metal i Direct 3D).

- W module Qt Multimedia dodano klasę QWindowCapture do przechwytywania zawartości poszczególnych okien, uzupełniając pojawiającą się w poprzedniej wersji klasę QScreenCapture, ograniczoną możliwością przechwytywania całego ekranu. QWindowCapture pozwala uzyskać listę okien dostępnych do przechwycenia i może być stosowany w aplikacjach do udostępniania okien. Przechwytywanie okien i ekranu wspiera backend FFmpeg na wszystkich platformach, z wyjątkiem systemów stosujących protokół Wayland.
- W klasie QMediaRecorder dodano właściwości do zarządzania jakością wideo, rozdzielczością i bitrate'em.
- Rozbudowano możliwości modułów Qt GRPC i Qt Protobuf, umożliwiających dostęp do usług gRPC i serializację klas Qt, wykorzystując protokół Protocol Buffer. W Qt GRPC dodano nowe opcje QGrpcChannelOptions i QGrpcCallOptions, aby uprościć konfigurację kanałów i wywołań oraz ograniczyć maksymalny czas wykonania wywołania lub strumienia. Dodano opcję QGrpcMetadata do ustawiania metadanych przez klienta i odczytu metadanych zwróconych. serwerem. W Qt GRPC zintegrowano wsparcie dla typu QML do automatycznego generowania klas klientów QtGRPC. W Qt Protobuf zezwolono na uwzględnienie w schemacie *.proto niektórych typów Qt Core i Qt GUI, a także udostępniono możliwość dostępu do kontekstów QML przez klasy QProtobufMessage. Dodano wsparcie dla typów google.protobuf.Any oraz oneof.
- W module Qt WebEngine dodano API do dostępu do ustawień prywatności i bezpieczeństwa, co umożliwia wyłączenie poszczególnych możliwości silnika przeglądarki. Na przykład, przy pomocy atrybutów QWebEngineUrlScheme::FetchApiAllowed i QWebEngineSettings::DisableReadingFromCanvas można wyłączyć API Fetch oraz rysowanie elementów Canvas, aby zmniejszyć ryzyko pasywnej identyfikacji. Dodano wsparcie dla wewnętrznego adresu URL „chrome://qt”, po otwarciu którego wyświetlana jest strona z informacjami o używanej wersji silnika Chromium.
- W module Qt Sql dodano wtyczkę z obsługą bazy danych Mimer SQL, rozszerzono ustawienia połączenia w sterowniku dla baz danych MySQL i MariaDB.
- W module Qt PDF udostępniono klasy do dostępu do linków, miniatur stron i wybranych stron.
- W Qt Quick w typie Font wprowadzono nowe API do zaawansowanej konfiguracji kompozycji glifów (shaping) w czcionkach OpenType. Możliwość korzystania z modułu Qt Quick Shapes zapewnia wysokiej jakości rysowanie linii i krzywych przy użyciu fragmentowego shadera.

- Dokumentacja silnika renderowania RHI (Rendering Hardware Interface) została poprawiona oraz wprowadzono stabilizację związanego z nim niskopoziomowego API. Poziom wsparcia dla wstecznej kompatybilności RHI będzie teraz odpowiadać API Qt Platform Abstraction, co umożliwi bezpośrednie wykorzystanie RHI do tworzenia wieloplatformowego niskopoziomowego kodu, działającego ze wszystkimi popularnymi stosami graficznymi i API graficznymi (OpenGL, Vulkan, Metal i Direct 3D).
- W module Qt Quick 3D dodano wsparcie dla proceduralnego tworzenia tekstur i geometrii na podstawie siatki polygonalnej w QML.
- W module Qt TextToSpeech wprowadzono możliwość generowania danych PCM (Pulse-Code Modulation) do dalszego przetwarzania syntetyzowanej mowy (wcześniej wspierano jedynie bezpośrednie wyjście na urządzenie dźwiękowe). Zapewniono dodatkowe opcje segmentacji tekstu, dodano API do wyszukiwania wymaganych głosów oraz API do określania dostępnych funkcji silnika.
- Moduł „Qt for Python”, który dostarcza narzędzia do tworzenia aplikacji graficznych w języku Python z wykorzystaniem Qt, zyskał wsparcie dla operacji asynchronicznych przy użyciu asyncio. Zapewniono kompatybilność Qt for Python z urządzeniami opartymi na architekturze AArch64.
- Zaktualizowano stos Boot2Qt, który może być używany do tworzenia systemów mobilnych z obsługą Qt i QML. Środowisko systemowe w Boot2Qt zostało zaktualizowane do platformy Yocto 4.2 (Mickledore). Pracujemy nad dostarczeniem gotowych wersji Boot2Qt dla płyt NXP oraz urządzeń Renesas R-Car.
- Dodano wsparcie dla platformy Android 13. Na platformach Windows i Linux poprawiono wsparcie dla architektury ARM. Wraz z towarzyszącymi z projektu Debian w oficjalnych repozytoriach dystrybucji umieszczono pakiety z Qt 6 dla Debian 11 i Debian 12, a w repozytorium Qt Company — pakiety z komercyjnymi komponentami Qt 6.6 dla Debian.
- Ulepszono narzędzia deweloperskie dla platformy WebAssembly, umożliwiające 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 JIT-kompilacji osiągają wydajność zbliżoną do kodu natywnego, mogą korzystać z Qt Quick, Qt Quick 3D oraz dostępnych w Qt narzędzi wizualizacji. W nowej wersji uproszczono debugowanie aplikacji dla WebAssembly oraz poprawiono wsparcie dla tej platformy dzięki obsłudze dynamicznego ładowania (aplikacje dla WebAssembly mogą teraz być dostarczane z wspólnymi bibliotekami i wtyczkami Qt).
Źródło: opennet.ru



