Společnost Qt Company vydala verzi frameworku Qt 6.8, ve které pokračuje práce na stabilizaci a rozšíření funkcionality větve Qt 6. V Qt 6.8 byla přidána podpora pro platformy Windows 10+, macOS 12+, Linux (Ubuntu 22.04/24.04, openSUSE 15.5, SUSE 15 SP5, RHEL 8.8/9.2, Debian 11.6), iOS 16+, Android 9+(API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS a QNX. Zdrojové kódy komponentů Qt jsou poskytovány pod licencemi LGPLv3 a GPLv2.
Qt 6.8 získal statut LTS vydání, pro které budou aktualizace připravovány po dobu pěti let pro majitele komerční licence, což je o dva roky více než u předchozích LTS vydání. Pro nekomerční uživatele bude doba podpory činít půl roku (do přípravy nového významného vydání). Podpora předchozí LTS větve Qt 6.5 potrvá do května 2026, zatímco podpora předminulé LTS větve Qt 6.2 byla ukončena 30. září 2024. Větve Qt 5.15 bude podporována do května 2025.
Hlavní změny ve Qt 6.8:
- Byl stabilizován a převeden do kategorie plně podporovaných modul Qt Graphs, určený pro vytváření různých typů 2D a 3D grafů, stejně jako vizualizaci velkých kolekcí rychle se měnících dat. Modul se vyvíjí jako univerzální náhrada za starý modul Qt DataVisualization, závislý na OpenGL, a modul Qt Charts. Nový modul využívá Qt Quick 3D a renderovací engine RHI (Rendering Hardware Interface), podporující různé 3D API (OpenGL, Vulkan, Metal a Direct 3D).
Ve srovnání s minulým vydáním byly do Qt Graphs 3D přidány optimalizace výkonu, byla zajištěna podpora transparency na trojrozměrných grafech (Bars3D), rozšířeny možnosti řízení umístění a stylizace štítků a záhlaví, zlepšeno vykreslování linií navigační mřížky. V Qt Graphs 2D byla přidána možnost vykreslování vlastních typů sloupcových diagramů (pomocí QML komponent), přidána podpora pro stohované sloupcové diagramy, rozšířeny prostředky pro zobrazení štítků. Bylo unifikováno API pro využití témat ve 2D a 3D grafech. Specifické pro widgety volání byla přesunuta do modulu Qt Graphs Widgets.
- Stabilizován a převeden do kategorie plně podporovaných modul QtHttpServer, který umožňuje integrovat do aplikací funkčnost HTTP serveru, jenž podporuje HTTP/1.1, TLS/HTTPS, WebSockets, zpracování chyb, směrování požadavků na základě parametrů v URL (QHttpServerRouter) a REST API. Ve srovnání s předchozí verzí byla v třídě QNetworkAccessManager implementována možnost odesílání HTTP požadavků přes místní socket. Byla poskytnuta podpora pro použití třídy QFormDataBuilder pro zjednodušení přenosu několika souborů dat (např. textových dat a připojeného souboru) v rámci jednoho HTTP požadavku (HTTP multi-part).
- Stabilizován a převeden do kategorie plně podporovaných modul Qt GRPC, který umožňuje vyžadovat služby prostřednictvím protokolu gRPC.
- Stabilizován a převeden do kategorie plně podporovaných modul Qt Protobuf, určený pro serializaci tříd Qt pomocí protokolu Protocol Buffer.
- Byla přidána podpora pro mobilní platformy Android 14 a iOS 18.
- Byla poskytnuta možnost vývoje aplikací pro desktopové systémy Linux a Windows s procesory ARM, stejně jako pro 3D brýle Apple Vision Pro a Meta Quest 3 XR.
- Byla přidána podpora Raspberry Pi 5, NVIDIA AGX Orin a některých desek založených na SoC NXP, Toradex a STM. Přidána podpora pro RISC-V desky StarFive VisionFive 2.
- Byly rozšířeny možnosti pro vytváření ořezaných sestavení Qt, která mohou být používána na zařízeních s malým množstvím paměti. Například vypnutím nepoužívaných funkcí a komponent Qt lze dosáhnout zkrácení velikosti sestavení v trvalém úložišti o 77 % a snížení spotřeby RAM o 32 %, a také výrazně zkrátit čas spuštění.
- V modulu Qt Multimedia na platformě Linux byla implementována podpora pro zachycení obrazovky pomocí třídy QScreenCapture v prostředích založených na protokolu Wayland, s použitím služby ScreenCast a systému portálů XDG Desktop. Byly přidány třídy QVideoFrameInput, QAbstractVideoBuffer a QAudioBufferInput, pomocí kterých je možné realizovat odesílání vlastních multimediálních dat do nahrávacího sezení (QMediaCaptureSession), stejně jako třída QAudioBufferOutput pro připojení handlerů, které přijímají zvuková data ve fázi po dekódování.
- Byl přidán modul Qt Quick Vector Image, který umožňuje integrovat do scén Qt Quick vektorové obrázky ve formátu SVG, což lze využít například k vytváření škálovatelných prvků uživatelského rozhraní, které nezávisí na rozlišení a velikosti obrazovky.

- Byl přidán modul Qt Quick 3D XR pro vytváření aplikací pro platformy virtuální a rozšířené reality pomocí technologií Qt Quick 3D. Pro organizaci interakce s 3D prostředími, vytvořenými pomocí Qt Quick 3D, je podporováno použití zařízení pro sledování pohybu rukou a VR ovladačů. Pro vizualizaci mohou být použity brýle Apple VisionPro nebo 3D headsety s podporou standardu OpenXR, jako jsou Meta Quest 2/3.

- V Qt Quick byly přidány optimalizace, které zrychlují vykreslování složitých scén. Ve třídě TableView se objevila možnost přesouvání sloupců a řádků. Typy Image a BorderImage nyní podporují asynchronní načítání obrázků (starý obrázek zůstává, dokud se nenačte nový).
- V modulu Qt Quick Effect Maker byla přidána podpora animování spriteů, zakřivení prvků kolem kruhu a jejich využití v efektech záření a selektivního rozmazání (masked blur).
- V modulu Qt Quick Shapes při plnění kontury je nyní povoleno používání jakýchkoli poskytovatelů textur v prvcích s typem ShapePath. Do třídy QQuickRenderTarget byly přidány nové metody pro správu zpracování textur a zjednodušení integrace Qt Quick 3D s externími enginy, frameworky a API.
- V Qt Quick Controls byl zaveden nový styl Fluent WinUI3, který umožňuje vytvořit uživatelské rozhraní, které vypadá jako Windows 11 na jakýchkoli platformách. V macOS byla realizována možnost použití globálního menu poskytovaného platformou v rozhraních, která jsou vytvářena pomocí Quick MenuBar.

- V Qt Quick 3D byla vylepšena kresba stínů díky použití kaskádových stínových map a jemné filtraci stínů. Do typu PrincipledMaterial byly přidány nové vlastnosti. Byla poskytnuta možnost použití stejných vlastností ve vlastních materiálech, které jsou k dispozici v materiálech na bázi typu PrincipledMaterial.

- Do modulu Qt Network Auth byla přidána třída QOAuthUriSchemeReplyHandler pro vytváření obslužných rutin přesměrování na jiný schéma URI při autentizaci pomocí OAuth 2.0. Do třídy QOAuth2AuthorizationCodeFlow byla přidána podpora rozšíření OAuth PKCE (Proof Key for Code Exchange).
- Do třídy QDnsLookup byla přidána možnost odesílat dotazy s využitím „DNS over TLS“, byla implementována podpora DNS záznamů TLSA (TLS Certificate Association) a klient je informován o provádění ověření dat DNS serverem.
- V Qt Core byla přidána třída QChronoTimer s obalovou vrstvou pro knihovnu std::chrono, která umožňuje dosáhnout vyšší přesnosti operací s časem. Byla implementována možnost změny velikosti QString, QByteArray a QList bez inicializace dat. V QHash byla přidána podpora ukládání dat různých typů QString a QStringView v jednom hash.
- V Qt GUI byla poskytnuta možnost přepsání nastavení systémového barevného schématu, například pro výběr tmavého nebo světlého režimu, a také nastavení akcí vedoucích k vyvolání kontextového menu.
- V Qt Sql ovladače databází PostgreSQL a MySQL/MariaDB nyní správně zpracovávají čas a data v situaci, kdy má klient i server serveru vybrány různé časové zóny.
- Qt WebEngine byly přidány nové třídy: QWebEngineFrame pro práci na úrovni jednotlivých iframe bloků; QWebEngineClientHints pro správu identifikace prohlížeče; QWebEnginePermission pro správu přístupových práv vázaných na webové stránky.
- V Qt Widgets bylo vylepšeno vykreslování widgetů na obrazovkách s vysokou hustotou pixelů (high-DPI).
- Generátor dokumentace QDoc byl převeden z C API na C++ API a pro jeho fungování je nyní vyžadován minimálně Clang 17. Byly přidány nové příkazy, jako například „\keyword“ a „\nativetype“.
- V rámci práce na zvyšování stability a výkonu LTS verze bylo provedeno více než 500 oprav a optimalizací.
Zdroj: opennet.ru




