Qt Company har slÀppt ramverket Qt 6.12, vilket fortsÀtter arbetet med att stabilisera och utöka funktionaliteten i Qt 6-grenen. Qt 6.12 ger stöd för plattformar Windows 10+, macOS 13+, Linux (Ubuntu 22/04/24 2004, 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 och QNX. KÀllkoden för Qt-komponenter Àr licensierad under LGPLv3- och GPLv2-licenserna.
Qt 6.12 har utsetts till en LTS-utgÄva, med uppdateringar som fortsÀtter i fem Är för kommersiella licensinnehavare. För icke-kommersiella anvÀndare kommer underhÄllet att fortsÀtta i sex mÄnader (fram till nÀsta större utgÄva). Stödet för den tidigare LTS-grenen, Qt 6.8, kommer att fortsÀtta till oktober 2029, medan stödet för den tidigare LTS-grenen, Qt 6.5, upphörde i Är.
Stora Àndringar i Qt 6.12:
- Modulen Qt Canvas Painter, som tillhandahÄller ett API för hÄrdvaruaccelererad rendering av 2D-innehÄll och anvÀnder shaders för att skapa komplexa visuella effekter, har förklarats redo för utbredd anvÀndning. Rendering utförs med hjÀlp av RHI-motorn (Rendering Hardware Interface), som stöder olika 3D-API:er (OpenGL, Vulkan, Metal och Direct 3D). Canvas Painter anvÀnds som bas för det experimentella Canvas2D-elementet, som Àr baserat pÄ HTML Canvas 2D Context-specifikationen och förenklar anvÀndningen av JavaScript för att rita former.

- En experimentell StyleKit-modul har lagts till, som explicit separerar strukturen för anvÀndargrÀnssnittskomponenter frÄn stilattribut, vilket eliminerar kodduplicering vid implementering av ljusa, mörka och högkontrastteman. StyleKit tillhandahÄller ett enhetligt QML API för att beskriva stilar, vilket möjliggör konsekvent styling i hybridapplikationer som kombinerar klassiska widgetar och Qt Quick-baserade element.

- Funktionerna i Qt Graphs-modulen har utökats. Nya egenskaper för att anpassa axeletiketter har implementerats för 2D-grafer, och stöd för logaritmiska axlar har lagts till. Inbyggda ÄtgÀrder för zoomning och panorering har lagts till. Ett alternativ har lagts till för rendering med hjÀlp av ett högpresterande backend baserat pÄ CanvasPainter-modulen, vilket möjliggör visualisering av stora volymer snabbt förÀnderlig data.
- Qt Quick har lagt till QML-typerna Safe Area, Context Menu, Double Spin Box och Search Field för att visa icke-överlappande innehÄll, kontextmenyer, numeriska inmatningsformulÀr och sökfÀlt. QML-typen FlexboxLayout har utökats, vilket möjliggör adaptiv layout av grÀnssnittselement i enlighet med Flexbox-konceptet, ett CSS-ramverk som anvÀnds för att förenkla vertikal justering av element.
- Vektorbildsmodulen, som lÄter dig integrera vektorbilder i Qt Quick-scener för att skapa skalbara grÀnssnittselement, har uppdaterats med ytterligare egenskaper och animationsfunktioner för SVG- och Lottie-bilder.
- Klassen QRangeModel har utökats och erbjuder nu ett omslag runt QAbstractItemModel för direkt anvÀndning i QML- och Qt Quick-baserade grÀnssnittselement av alla C++-upprÀkningstyper, inklusive std::vector, std::tuples och std::array. Den nya versionen innehÄller inbyggt stöd för datasortering, nya egenskaper för att styra dra-och-slÀpp-rörelser, snabbare sökning via match()-metoden och instÀllningar för rubriker och enskilda rader/objekt.
- Och gRPC-modulen har lagts till med verktyg för att komprimera meddelanden pÄ klientsidan och begrÀnsa storleken pÄ inkommande meddelanden frÄn server.
- QML-motorn implementerar Hot Reload-mekanismen, som lÄter dig redigera QML-kod i farten under programkörning och observera resultatet via qmlpreview utan att starta om eller stoppa programmet.
- LTS-stöd för HarmonyOS-plattformen har tillhandahÄllits, vilket gör det enklare att porta befintliga Qt-applikationer till Huaweis smartphones, surfplattor, datorer och infotainmentsystem i bilen.
- Kraven i den europeiska lagen om cyberresiliens (CRA) har uppfyllts. Dessa krav syftar till att upprÀtthÄlla produktsÀkerhet, snabbt ÄtgÀrda sÄrbarheter under hela produktens livscykel och offentliggöra information om sÄrbarheter och sÀkerhetsincidenter. SÀkerhetskritiska komponenter identifieras i kÀllkoden, information om sÀkerhetstestning publiceras och integration av aktuella versioner av tredjepartsbibliotek garanteras.

KĂ€lla: opennet.ru


