Společnost Qt Company zveřejnila uvolnění frameworku Qt 6.6, ve kterém pokračuje práce na stabilizaci a zvyšování funkcionality větve Qt 6. V Qt 6.6 je zajištěna podpora platforem 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 a QNX. Zdrojové kódy komponent Qt jsou dodávány pod licencemi LGPLv3 a GPLv2.
Hlavní změny v Qt 6.6:
- V modulu Qt Quick byla implementována experimentální podpora adaptivního uspořádání rozhraní. Pro dynamickou změnu rozložení rozhraní v závislosti na velikosti okna a automatické umístění prvků s ohledem na strukturu aktuálního rozložení byl navržen třída LayoutItemProxy, a v modulu Qt Quick Layouts byla poskytnuta možnost používání jednotné velikosti buněk pro rozložení s umístěním prvků v mřížce, řádcích a sloupcích.

- V Qt Quick byla přidána podpora režimů výběru (vlastnost selectionMode) v QML typu TableView (například lze řídit výběr buněk, řádků, sloupců a sad buněk), byla poskytnuta možnost změny vlastnosti rootIndex, v QML typu TreeView bylo rozšířeno řízení vzhledu posuvníků (scroll-deceleration) v QML typu Flickable, a bylo implementováno automatické zkracování cest k souborům. K dispozici je API pro správu oprávnění z QML.
- Byl přidán experimentální modul Qt Graphs, zaměřený na poskytnutí univerzálního modulu pro vizualizaci velkých kolekcí rychle se měnících dat a vytváření různých typů grafů. Modul se vyvíjí jako univerzální náhrada starého modulu Qt DataVisualization, který byl spojen s OpenGL, a modulu Qt Charts. Modul je stále ve vývoji a v současné době se zaměřuje na reprodukci funkcionality Qt DataVisualization na platformě Qt Quick 3D a využití nového renderovacího enginu (RHI, Rendering Hardware Interface), který podporuje různé 3D API (OpenGL, Vulkan, Metal a Direct 3D).

- Do modulu Qt Multimedia byl přidán třída QWindowCapture pro zachycení obsahu jednotlivých oken, čímž doplnila třídu QScreenCapture, která byla představena v minulém vydání a omezovala se na možnost zachytit celou obrazovku. QWindowCapture umožňuje získat seznam oken, která jsou k dispozici pro zachycení, a může být použita v aplikacích pro poskytování sdílení oken. Zachycení oken a obrazovky je podporováno při použití backendu FFmpeg na všech platformách kromě systémů, které používají protokol Wayland.
- Do třídy QMediaRecorder byly přidány vlastnosti pro řízení kvality videa, rozlišení a bitového toku.
- Byly rozšířeny možnosti modulů Qt GRPC a Qt Protobuf, které umožňují přístup k službám gRPC a provádění serializace tříd Qt pomocí protokolu Protocol Buffer. Do Qt GRPC byly přidány nové možnosti QGrpcChannelOptions a QGrpcCallOptions pro usnadnění nastavení kanálů a volání, a také pro omezení maximální doby trvání volání nebo vlákna. Byla přidána možnost QGrpcMetadata pro nastavení metadat klientem a čtení metadat vrácených serverem. Do Qt GRPC byla integrována podpora typu QML pro automatickou generaci klientských tříd QtGRPC. V Qt Protobuf bylo povoleno zahrnutí některých typů Qt Core a Qt GUI do schématu *.proto, stejně jako byla poskytnuta možnost přístupu k QML kontextům prostřednictvím tříd QProtobufMessage. Byla přidána podpora typů google.protobuf.Any a oneof.
- Do modulu Qt WebEngine bylo přidáno API pro přístup k nastavením soukromí a bezpečnosti, které umožňuje deaktivovat jednotlivé funkce prohlížečového enginu. Například pomocí atributů QWebEngineUrlScheme::FetchApiAllowed a QWebEngineSettings::DisableReadingFromCanvas lze deaktivovat API Fetch a vykreslování elementů Canvas za účelem snížení rizika pasivní identifikace. Byla přidána podpora interního URL „chrome://qt“, při jehož otevření se zobrazí stránka s informacemi o používané verzi enginu Chromium.
- Do modulu Qt Sql byl přidán plugin s podporou DBMS Mimer SQL, byly rozšířeny nastavení připojení v ovladači pro DBMS MySQL a MariaDB.
- V modulu Qt PDF byly poskytnuty třídy pro přístup k odkazům, miniaturám stránek a vybraným stránkám.
- V Qt Quick byl v typu Font implementován nový API pro rozšířené nastavení tvarování glifů v písmech OpenType. Umožňuje využití modulu Qt Quick Shapes pro kvalitní vykreslování čar a křivek pomocí fragmentového shaderu.

- Byla provedena dokumentace engine renderování RHI (Rendering Hardware Interface) a stabilizace souvisejícího nízkoúrovňového API. Úroveň zpětné kompatibility pro RHI nyní odpovídá API Qt Platform Abstraction, což umožní přímé využití RHI pro vývoj multiplatformního nízkoúrovňového kódu pracujícího se všemi populárními grafickými stacky a grafickými API (OpenGL, Vulkan, Metal a Direct 3D).
- Modul Qt Quick 3D nyní podporuje procedurální generování textur a geometrie na základě polygonálních mřížek pomocí QML.
- V modulu Qt TextToSpeech přibyla možnost generování PCM dat (Pulse-Code Modulation) pro další zpracování syntetizovaného hlasu (dříve podporován pouze přímý výstup na zvukové zařízení). Byla přidána další nastavení segmentace textu, API pro vyhledávání potřebných hlasů a API pro definici dostupných funkcí engine.
- Do souboru modulů „Qt for Python“, který poskytuje prostředky pro vytváření grafických aplikací v jazyce Python s využitím Qt, byla přidána podpora pro asynchronní operace pomocí asyncio. Zajištěna kompatibilita Qt for Python s zařízeními založenými na architektuře AArch64.
- Byl aktualizován stack Boot2Qt, který lze použít k vytváření zavitelných mobilních systémů s prostředím založeným na Qt a QML. Systémové prostředí v Boot2Qt bylo aktualizováno na platformu Yocto 4.2 (Mickledore). Pracuje se na poskytování hotových sestavení Boot2Qt pro desky NXP a zařízení Renesas R-Car.
- Byla přidána podpora pro platformu Android 13. Na platformách Windows a Linux byla vylepšena podpora architektury ARM. Společně s doprovodnými balíčky z projektu Debian jsou v standardních repozitářích distribuce uloženy balíčky s Qt 6 pro Debian 11 a Debian 12, zatímco v repozitářích Qt Company jsou balíčky s komerčními komponenty Qt 6.6 pro Debian.
- Byly vylepšeny vývojové nástroje pro platformu WebAssembly, které umožňují vytvářet aplikace Qt fungující v webovém prohlížeči a přenášející se mezi různými hardwarovými platformami. Aplikace sestavované pro platformu WebAssembly, díky JIT kompilaci, dosahují výkonu blízkého nativnímu kódu a mohou využívat Qt Quick, Qt Quick 3D a dostupné vizualizační nástroje Qt. V nové verzi bylo zjednodušené ladění aplikací pro WebAssembly a zlepšena podpora této platformy díky podpoře dynamického linkování (aplikace pro WebAssembly nyní mohou být dodávány se sdílenými knihovnami a pluginy Qt).
Zdroj: opennet.ru



