Spoločnosť Qt Company vydala novú verziu frameworku Qt 6.12, v ktorej pokračuje stabilizácia a rozšírenie funkčnosti verzie Qt 6. V Qt 6.12 je poskytnutá podpora pre platformy Windows 10+, macOS 13+, Linux (Ubuntu 22.04/24.04, openSUSE 16, SUSE 15 SP6, RHEL 9.6/10.0, Debian 11.6/12), iOS 17+, Android 9+(API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS a QNX. Zdrojový kód komponentov Qt je dodávaný pod licenciami LGPLv3 a GPLv2.
Qt 6.12 získal status LTS verzie, pre ktorú budú aktualizácie poskytované počas piatich rokov pre držiteľov komerčnej licencie. Pre nekomerčných používateľov bude doba podpory šesť mesiacov (až do vzniku novej významnej verzie). Podpora predchádzajúcej LTS verzie Qt 6.8 potrvá do októbra 2029, zatiaľ čo podpora verzie Qt 6.5 bola ukončená tento rok.
Hlavné zmeny v Qt 6.12:
- Modul Qt Canvas Painter bol uznaný za pripravený na široké použitie, poskytujúci API pre hardvérom akcelerované vykresľovanie 2D obsahu a využívajúci shadery na vytváranie zložitých vizuálnych efektov. Vykresľovanie sa vykonáva pomocou enginu RHI (Rendering Hardware Interface), ktorý podporuje rôzne 3D API (OpenGL, Vulkan, Metal a Direct 3D). Na báze Canvas Painter bol implementovaný experimentálny prvok Canvas2D, vytvorený s ohľadom na HTML špecifikáciu Canvas 2D Context a zjednodušujúci použitie JavaScriptu na vykresľovanie tvarov.

- Bol pridaný experimentálny modul StyleKit, ktorý jasne oddeľuje štruktúru komponentov používateľského rozhrania a atribúty štýlov, čo umožňuje zbaviť sa duplicity kódu pri implementácii svetlých, tmavých a vysoko kontrastných tém. StyleKit poskytuje jednotné QML API na opis štýlov, čo umožňuje dosiahnuť jednotný štýl v hybridných aplikáciách, kombinujúcich klasické widgety a prvky na báze Qt Quick.

- Možnosti modulu Qt Graphs boli rozšírené. Pre 2D grafy boli implementované nové vlastnosti na prispôsobenie označenia osí a bola pridaná podpora logaritmických osí. Boli pridané zabudované akcie na zoomovanie a panorámovanie. Pridala sa možnosť pre vykresľovanie pomocou vysoko výkonného backendu na báze modulu CanvasPainter, ktorý umožňuje vizualizovať veľké objemy rýchlo sa meniacich údajov.
- V Qt Quick boli pridané QML typy Safe Area, Context Menu, Double Spin Box a Search Field na zobrazenie neprerušovaného obsahu, kontextových menu, formulárov na zadávanie čísel a polí na odosielanie vyhľadávacích dopytov. Rozšírený QML typ FlexboxLayout, určený na responzívne rozloženie prvkov používateľského rozhrania podľa konceptu Flexbox používaného v CSS na zjednodušenie vertikálneho zarovnávania prvkov.
- Do modulu Vector Image, ktorý umožňuje integrovať vektorové obrázky do scén Qt Quick na vytvorenie škálovateľných prvkov rozhrania, boli pridané ďalšie vlastnosti a možnosti animácie pre obrázky vo formáte SVG a Lottie.
- Rozšírená trieda QRangeModel, poskytujúca obal nad QAbstractItemModel na priame použitie v prvkoch rozhrania založených na QML a Qt Quick akýchkoľvek vymeniteľných typov z C++, vrátane std::vector, std::tuples a std::array. V novej verzii bola zabudovaná podpora pre triedenie dát, implementované nové vlastnosti na kontrolu pohybu v režime „Drag & Drop“, zrýchlené vyhľadávanie pomocou metódy match() a poskytnuté nastavenia pre hlavičky a jednotlivé riadky/prvky.
- Do modulu gRPC boli pridané prostriedky na kompresiu správ na strane klienta a obmedzenie veľkosti prichádzajúcich správ od servera.
- V QML engine bol implementovaný mechanizmus Hot Reload, ktorý umožňuje upravovať QML kód za behu aplikácie a sledovať prostredníctvom qmlpreview výsledok bez reštartu a zastavenia vykonávania aplikácie.
- Poskytnutá podpora LTS pre platformu HarmonyOS, čo zjednodušuje prenos existujúcich Qt aplikácií na smartfóny, tablety, PC a automobilové informačno-zábavné systémy Huawei.
- Bol splnený požiadavky európskej legislatívy Cyber Resilience Act (CRA), zameraných na udržiavanie bezpečnosti produktu, operatívne odstránenie zraniteľností počas životného cyklu a odhaľovanie informácií o zraniteľnostiach a incidentoch v oblasti bezpečnosti. V zdrojovom kóde boli vyčlenené komponenty, ktoré sú kritické z hľadiska bezpečnosti, zorganizovaná publikácia informácií o testovaní bezpečnosti a garantovaná integrácia aktuálnych verzií externých knižníc.

Zdroj: opennet.ru


