Spoločnosť Qt Company vydala verziu frameworku Qt 6.8, v ktorej pokračuje práca na stabilizácii a rozširovaní funkcií vetvy Qt 6. Verzia Qt 6.8 poskytuje podporu pre 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 komponentov Qt sú dodávané pod licenciami LGPLv3 a GPLv2.
Qt 6.8 získal status LTS vydania, pre ktoré budú aktualizácie vychádzať počas piatich rokov pre majiteľov komerčných licencií, čo je o dva roky dlhšie ako v predchádzajúcich LTS vydaniach. Pre nekomerčných používateľov bude doba podpory trvať pol roka (do vydania novej významnej verzie). Podpora predchádzajúcej LTS vetvy Qt 6.5 potrvá do mája 2026, pričom podpora dávnejšej LTS vetvy Qt 6.2 sa skončila 30. septembra 2024. Vetva Qt 5.15 bude podporovaná do mája 2025.
Hlavné zmeny v Qt 6.8:
- Modul Qt Graphs bol stabilizovaný a presunutý do plne podporovaných modulov, jeho cieľom je vytváranie rôznych typov 2D a 3D grafov, ako aj vizualizácia veľkých kolekcií rýchlo sa meniacich dát. Tento modul sa vyvíja ako univerzálna náhrada starého modulu Qt DataVisualization, ktorý bol založený na OpenGL, a modulu Qt Charts. Nový modul využíva Qt Quick 3D a renderovací motor RHI (Rendering Hardware Interface), ktorý podporuje rôzne 3D API (OpenGL, Vulkan, Metal a Direct 3D).
V porovnaní s predchádzajúcim vydaním sú v Qt Graphs 3D pridané optimalizácie výkonu, zabezpečená podpora priehľadnosti na trojdimenzionálnych grafoch (Bars3D), rozšírené možnosti správy polohy a dizajnu štítkov a názvov, vylepšené vykresľovanie liniek navigačnej siete. V Qt Graphs 2D je poskytnutá možnosť vykresliť vlastné typy stĺpcových diagramov (cez QML komponenty), pridaná podpora pre stackované stĺpcové diagramy, rozšírené prostriedky na zobrazenie štítkov. API bolo unifikované pre zapojenie tém dizajnu v 2D a 3D grafoch. Špecifické volania pre widgety boli presunuté do modulu Qt Graphs Widgets.
- Stabilizovaný a prevedený do plne podporovanej modul QtHttpServer, ktorý umožňuje integrovať do aplikácií funkčnosť HTTP servera, ktorý podporuje HTTP/1.1, TLS/HTTPS, WebSockets, spracovanie chýb, smerovanie požiadaviek na základe parametrov v URL (QHttpServerRouter) a REST API. V porovnaní s predchádzajúcou verziou bola v triede QNetworkAccessManager implementovaná možnosť odosielania HTTP požiadaviek cez lokálny socket. Poskytla sa podpora využitia triedy QFormDataBuilder na zjednodušenie prenosu viacerých súborov dát (napríklad textových dát a priloženého súboru) v jednej HTTP požiadavke (HTTP multi-part).
- Stabilizovaný a prevedený do plne podporovanej modul Qt GRPC, ktorý umožňuje pristupovať k službám pomocou protokolu gRPC.
- Stabilizovaný a prevedený do plne podporovanej modul Qt Protobuf, určený na serializáciu Qt tried, pomocou protokolu Protocol Buffer.
- Pridaná podpora mobilných platforiem Android 14 a iOS 18.
- Poskytla sa možnosť vývoja aplikácií pre desktopové systémy Linux a Windows s procesormi ARM, ako aj 3D headsetov Apple Vision Pro a Meta Quest 3 XR.
- Pridaná podpora Raspberry Pi 5, NVIDIA AGX Orin a niektorých dosiek založených na SoC NXP, Toradex a STM. Pridaná podpora RISC-V dosiek StarFive VisionFive 2.
- Rozšírené možnosti pre vytváranie zúžených zostáv Qt, ktoré môžu byť používané na zariadeniach s malým objemom pamäte. Napríklad, vypnutím nepoužívaných funkcií a komponentov Qt je možné dosiahnuť zníženie veľkosti zostavy v stálej pamäti o 77 % a zníženie spotreby RAM o 32 %, ako aj výrazne skrátiť čas spúšťania.
- V module Qt Multimedia na platforme Linux bola implementovaná podpora zachytávania obrazovky pomocou triedy QScreenCapture v prostrediach založených na protokole Wayland, využívajúc službu ScreenCast a systém portálov XDG Desktop. Pridané triedy QVideoFrameInput, QAbstractVideoBuffer a QAudioBufferInput, pomocou ktorých je možné organizovať odosielanie vlastných multimediálnych dát do nahrávacej relácie (QMediaCaptureSession), ako aj trieda QAudioBufferOutput pre pripojenie spracovateľov, ktorí prijímajú zvukové dáta po dekódovaní.
- Do modulu Qt Quick Vector Image bol pridaný modul, ktorý umožňuje integrovať do scén Qt Quick vektorové obrázky vo formáte SVG, čo môže byť napríklad využité na vytváranie škálovateľných prvkov rozhrania, nezávislých od rozlíšenia a veľkosti obrazovky.

- Do modulu Qt Quick 3D XR bol pridaný mód na vytváranie aplikácií pre platformy virtuálnej a rozšírenej reality pomocou technológií Qt Quick 3D. Na organizovanie interakcie s trojrozmernými prostrediami vytvorenými pomocou Qt Quick 3D je podporované používanie zariadení na sledovanie pohybu rúk a VR ovládačov. Na vizualizáciu môžu byť použité okuliare Apple VisionPro alebo 3D prilby s podporou štandardu OpenXR, ako sú Meta Quest 2/3.

- V Qt Quick boli pridané optimalizácie, ktoré urýchľujú vykresľovanie zložitých scén. V triede TableView sa objavila možnosť presúvať stĺpce a riadky. V typoch Image a BorderImage bola implementovaná podpora asynchrónneho načítania obrázkov (starý obrázok zostáva, kým sa načítava nový).
- V module Qt Quick Effect Maker bola pridaná podpora animovania spriteov, zakrivenia prvkov okolo obvodu a taktiež využívanie v efektoch žiarenia a selektívneho rozostrenia (masked blur).
- V module Qt Quick Shapes pri vyplňovaní kontúru je povolené používanie akýchkoľvek dodávateľov textúr v prvkoch typu ShapePath. Do triedy QQuickRenderTarget boli pridané nové metódy na riadenie spracovania textúr a zjednodušenie integrácie Qt Quick 3D s externými enginmi, rámcami a API.
- V Qt Quick Controls bol predstavený nový štýl Fluent WinUI3, ktorý umožňuje vytvoriť rozhranie, ktoré vyzerá ako Windows 11 na akýchkoľvek platformách. V macOS bola realizovaná možnosť používať globálne menu poskytované platformou v rozhraniach vytvorených pomocou Quick MenuBar.

- V Qt Quick 3D bolo vylepšené vykresľovanie tieňov vďaka používaniu kaskádových mapovania tieňov a mäkkého filtrovania tieňov. V type PrincipledMaterial boli pridané nové vlastnosti. Bol poskytnutý spôsob používania tých istých vlastností v vlastných materiáloch, ako sú v materiáloch na báze typu PrincipledMaterial.

- Do modulu Qt Network Auth bol pridaný trieda QOAuthUriSchemeReplyHandler na vytváranie spracovateľov presmerovania na inú schému URI pri autentifikácii pomocou OAuth 2.0. Do triedy QOAuth2AuthorizationCodeFlow bola pridaná podpora OAuth rozšírenia PKCE (Proof Key for Code Exchange).
- Do triedy QDnsLookup bola pridaná možnosť posielať požiadavky pomocou „DNS over TLS“, bola implementovaná podpora DNS záznamov TLSA (TLS Certificate Association) a zabezpečené informovanie klienta o vykonaní overenia údajov DNS serverom.
- V Qt Core bol pridaný trieda QChronoTimer s obalmi nad knižnicou std::chrono, umožňujúca dosiahnuť vyššiu presnosť časových operácií. Bola implementovaná možnosť zmeny veľkosti QString, QByteArray a QList bez inicializácie údajov. V QHash bola pridaná podpora ukladania údajov typu QString a QStringView v jednom haši. V QDirListing bol poskytnutý API založený na iterátore pre prechádzanie obsahom adresárov.
- V Qt GUI bola poskytnutá možnosť prepísať nastavenia systémovej farebnej schémy, napríklad na výber tmavého alebo svetlého režimu, ako aj nastavenia akcií, ktoré vedú k vyvolaniu kontextového menu.
- V Qt Sql ovládače SGBD PostgreSQL a MySQL/MariaDB teraz správne spracovávajú čas a dátumy v situácii, keď sú vybrané rôzne časové pásma. serveri sú klientom a na
- Bol pridaný nový triedy do Qt WebEngine: QWebEngineFrame na prácu na úrovni jednotlivých iframe blokov; QWebEngineClientHints na ovládanie identifikácie prehliadača; QWebEnginePermission na správu prístupových práv v súvislosti so stránkami.
- V Qt Widgets bola vylepšená kresba vidžetov na obrazovkách s vysokou hustotou pixelov (high-DPI).
- Generátor dokumentácie QDoc bol prevedený z C API na C++ API a na jeho fungovanie teraz potrebujete minimálne Clang 17. Pridali sa nové príkazy, ako sú „\keyword“ a „\nativetype“.
- V rámci práce na zvyšovaní stability a výkonu LTS vydania bolo vykonaných viac ako 500 opráv a optimalizácií.
Zdroj: opennet.ru




