Společnost Qt Company zveřejnila vydání frameworku Qt 6.12, ve kterém pokračuje práce na stabilizaci a rozšiřování funkcionality větve Qt 6. Qt 6.12 přináší podporu pro 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 komponentů Qt je distribuován pod licencemi LGPLv3 a GPLv2.
Qt 6.12 získal status LTS verze, pro kterou budou aktualizace vytvářeny po dobu pěti let pro držitele komerční licence. Pro nekomerční uživatele bude doba podpory trvat šest měsíců (do vytvoření nového významného vydání). Podpora předchozí LTS větve Qt 6.8 potrvá do října 2029 a podpora starší LTS větve Qt 6.5 byla ukončena letos.
Hlavní změny v Qt 6.12:
- Byl uznán jako připravený pro široké použití modul Qt Canvas Painter, který poskytuje API pro hardwarově akcelerované vykreslování 2D obsahu a využívá shadery pro vytváření složitých vizuálních efektů. Vykreslování je prováděno pomocí enginu RHI (Rendering Hardware Interface), který podporuje různé 3D API (OpenGL, Vulkan, Metal a Direct 3D). Na základě Canvas Painter byl implementován experimentální prvek Canvas2D, vytvořený s ohledem na HTML specifikaci Canvas 2D Context a usnadňující použití JavaScriptu pro vykreslování tvarů.

- Byl přidán experimentální modul StyleKit, který jasně odděluje strukturu komponent uživatelského rozhraní a stylové atributy, což umožňuje odstranit duplicitu kódu při realizaci světlých, tmavých a vysoce kontrastních témat. StyleKit poskytuje jednotné QML API pro popis stylů, které umožňuje dosáhnout jednotného stylu v hybridních aplikacích, kombinujících klasické widgety a prvky založené na Qt Quick.

- Možnosti modulu Qt Graphs byly rozšířeny. Pro 2D grafy byly implementovány nové vlastnosti pro přizpůsobení označení os a byla přidána podpora logaritmických os. Byly přidány vestavěné akce pro zoomování a panoramování. Byla přidána možnost vykreslování pomocí vysoce výkonného backendu na bázi modulu CanvasPainter, který umožňuje vizualizaci velkých objemů rychle se měnících dat.
- Do Qt Quick byly přidány typy QML Safe Area, Context Menu, Double Spin Box a Search Field pro zobrazení nepřekrývajícího se obsahu, kontextových menu, formulářů pro zadávání čísel a polí pro odesílání vyhledávacích dotazů. Typ QML FlexboxLayout byl rozšířen, aby umožnil responzivní rozvržení prvků uživatelského rozhraní podle konceptu Flexbox používaného v CSS pro usnadnění vertikálního zarovnání prvků.
- Do modulu Vector Image, který umožňuje integrovat do scén Qt Quick vektorové obrázky pro vytváření škálovatelných prvků uživatelského rozhraní, byly přidány další vlastnosti a možnosti animace pro obrázky ve formátech SVG a Lottie.
- Třída QRangeModel, poskytující obal nad QAbstractItemModel pro přímé použití v prvcích uživatelského rozhraní založených na QML a Qt Quick, rozšířila podporu pro jakékoli enumerované typy z C++, včetně std::vector, std::tuples a std::array. Nová verze obsahuje podporu pro třídění dat, implementovány byly nové vlastnosti pro kontrolu pohybu v režimu „Drag & Drop“, byla zrychlena metoda vyhledávání match() a byly poskytnuty možnosti pro hlavičky a jednotlivé řádky/prvky.
- Do modulu gRPC byly přidány nástroje pro kompresi zpráv na straně klienta a omezení velikosti příchozích zpráv od serveru.
- V QML enginu byl implementován mechanismus Hot Reload, který umožňuje editaci QML kódu za běhu programu a sledování výsledků přes qmlpreview bez restartování a zastavení aplikace.
- Byla poskytnuta podpora LTS pro platformu HarmonyOS, což usnadňuje přenos stávajících Qt aplikací na smartphony, tablety, PC a automobilové informačně-zábavní systémy Huawei.
- Byly splněny požadavky evropského zákona Cyber Resilience Act (CRA), zaměřeného na udržení bezpečnosti produktu, rychlé ošetření zranitelností v průběhu životního cyklu a zveřejnění informací o zranitelnostech a bezpečnostních incidentech. V zdrojovém kódu byly vyčleněny komponenty kritické z hlediska bezpečnosti, byla organizována publikace informací o testování bezpečnosti a byla zajištěna integrace aktuálních verzí třetích knihoven.

Zdroj: opennet.ru


