Qt Company har publicerat en version av ramverket Qt 6.11, dÀr arbetet med att stabilisera och öka funktionaliteten i Qt 6-familjen fortsÀtter. I Qt 6.11 erbjuds stöd för plattformar som Windows 10+, macOS 13+, Linux (Ubuntu 22.04/24.04, openSUSE 15.6/16, SUSE 15 SP6, RHEL 8.10/9.6/10, Debian 11.6/12), iOS 17+, Android 9+(API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS och QNX. KÀllkoderna för Qt-komponenterna levereras under licenserna LGPLv3 och GPLv2. Qt 6.11 har status som en betaversion, vars offentliga stöd kommer att pÄgÄ i 6 mÄnader (+ ytterligare 6 mÄnader för kommersiella anvÀndare).
De viktigaste Àndringarna i Qt 6.11:
- Modulen Qt Canvas Painter har lagts till, vilket ger ett API för hÄrdvaruaccelererad rendering av 2D-innehÄll, uppbyggt med hÀnsyn till HTML-specifikationen för Canvas 2D Context. För rendering anvÀnds RHI (Rendering Hardware Interface), som stödjer olika 3D-API:er (OpenGL, Vulkan, Metal och Direct 3D), vilket har resulterat i en betydande prestandaförbÀttring. I genomförda tester visade sig Qt Canvas Painter vara tvÄ gÄnger snabbare Àn QPainter med OpenGL-backend pÄ en typisk Lenovo ThinkPad P16 Gen 2-laptop, fem gÄnger snabbare pÄ en budget Android-surfplatta Lenovo Tab M10 HD och tio gÄnger snabbare pÄ en toppmoderna Android-surfplatta Samsung Galaxy Tab S8.

Förutom hög prestanda implementerar Qt Canvas Painter stöd för avancerade funktioner som anpassningsbar antialiasing, ramgradiens och skuggor (QCanvasBoxGradient och QCanvasBoxShadow analogt med CSS-egenskapen box-shadow), rutnÀtsmönster (QCanvasGridPattern), anvÀndardefinierade shaderpenslar och fÀrgeffekter för att Àndra genomskinlighet, ljusstyrka, kontrast och mÀttnad.

- Funktionaliteten i Qt Quick 3D-modulen ligger nÀra funktionerna hos spelmotorer. Stöd har lagts till för renderingsmetoder som SSGI (Screen Space Global Illumination) för att simulera ljusreflektioner frÄn ytor under efterbehandling (ett alternativ till ljuskartor (lightmap)) och SSR (Screen Space Reflections) för realistisk rendering av speglingar i realtid. Algoritmen för att jÀmna ut rörliga objekt har förbÀttrats genom att generera rörelsevektorer för varje objekt. Anpassningsbara renderingspass (render-pass) har implementerats, vilket kan anvÀndas direkt frÄn QML för maskering av lager, efterbehandlings effekter och objektidentifiering via fÀrg (color picking). Nya programgrÀnssnitt för lager och taggar har lagts till, vilket möjliggör styrning av separata renderingspass, aktivering av element i olika skeden av renderingskedjan (render pipeline) och omdirigering till mÄlrenderingsbuffertar.

- Möjligheterna i Qt Graphs-modulen har utökats. En ny typ, CustomSeries, har lagts till för att skapa egna diagram dĂ€r en anvĂ€ndardefinierad delegat ansvarar för rendering av varje dataelement. I 3D-diagram har stöd för flera axelsinstanser implementerats, dĂ€r till exempel QBar3DSeries kan anvĂ€nda separata axlar för rowAxis, valueAxis och columnAxis, medan QScatter3DSeries och QSurface3DSeries kan anvĂ€nda separata axlar för axisX, axisY och axisZ. Nya egenskaper har lagts till för att Ă„sidosĂ€tta fĂ€rger för separata axlar, justera gradienter pĂ„ diagram, Ă€ndra linjestilar och positionera etiketter. Ett exempel pĂ„ att skapa anpassade 2D- och 3D-diagram har lagts till â Vindkraftverk Dashboard.

- En experimentell modul, Qt TaskTree, har lagts till, som tillhandahĂ„ller ett deklarativt tillvĂ€gagĂ„ngssĂ€tt för att skapa och utföra asynkrona uppgifter i C++. De viktigaste komponenterna i Qt TaskTree Ă€r: 'recept' â Ă„teranvĂ€ndbara objekt som beskriver asynkrona arbetsflöden; 'grupper' â definierar policyer för underordnade uppgifter; 'lagring' för datadelning mellan uppgifter; 'iteratorer' för loopar och upprepning av uppgifter. Qt TaskTree löser Ă€ven problemet med inkompatibilitet mellan API:er genom att enhetliggöra olika asynkrona API:er till ett typgrĂ€nssnitt.

- Möjligheterna för att arbeta med animerad vektorgrafik som skapas frÄn bilder i formaten SVG och Lottie har utvidgats. Modulen Qt Quick VectorImage och verktyget lottietoqml har stabiliserats. Stöd för morphing-animation, SVG-masker, SVG-symboler och masklager (matte layer, för att hantera synligheten hos ett annat lager) har lagts till.
- I Qt Quick Controls har komponenten DoubleSpinBox lagts till. I DialogButtonBox har möjligheten att styra behandling av standardknappar implementerats. Effekten RectangularShadow har fÄtt oberoende kontroll över hörnradiuser.
- I Qt Widgets har alternativet StretchBanner lagts till i QWizard; i QAbstractItemView har parameter keyboardSearchFlags implementerats för att konfigurera sökbeteende under tangenttryckning; i QColumnView har en egenskap lagts till för att hantera synligheten av förhandsgranskningen.
- Modulen Qt OpenAPI har lagts till, vilket gör det möjligt att generera HTTP-klientkod som anvÀnder Qt Networks RESTful API baserat pÄ OpenAPI-specifikation i YAML-format.
- Det har lagts till en mekanism för att hantera flödet och innehÄllet i förfrÄgningar och svar i Qt GRPC-modulen.
- I Qt HTTP Server-modulen har verktygen för att hantera begrÀnsningar utvidgats och hanteringen av svar i arbetstrÄden har förbÀttrats. I QNetworkRequest har möjligheten att konfigurera TCP Keep Alive-parametrar lagts till (privat Àr inaktiva anslutningar automatiskt avslutade efter 2 minuter).
- I QML Language Server, som anvĂ€nds för integration med IDE, har information om var QML-typdefinitionen finns i C++-koden lagts till för att förenkla navigeringen mellan QML och C++ frĂ„n IDE â vid arbete med C++-kod kan QML-objekt hittas via identiteter och enkelt navigeras i QML-kontaktens hierarki.
- Utöver QRangeModel har klassen QRangeModelAdapter implementerats, vilket erbjuder C++ API för att Àndra modellens data genom att interagera via protokollet QAbstractItemModel, vilket förenklar överföringen av data frÄn backend-koden pÄ C++ till Qt Quick eller Qt Widget.
- Stödet för plattformen Android 16 har lagts till. Funktionalitet för Google Play Feature Delivery har implementerats för att dela upp applikationen i paket (huvudpaketet installeras omedelbart frÄn Google Play, medan ytterligare paket laddas ner efter behov). För Android Automotive har stöd för att starta Qt utan Android-beroenden implementerats för snabb uppstart av rendering.
Det Àr ocksÄ vÀrt att nÀmna den nyligen publicerade versionen av den integrerade utvecklingsmiljön Qt Creator 19, avsedd för att skapa plattformsoberoende applikationer med hjÀlp av Qt-biblioteket. BÄde klassisk programmering pÄ C++ och anvÀndning av QML-sprÄket stöds, dÀr JavaScript anvÀnds för att definiera scenarier och strukturen och parametrarna för grÀnssnittselementen anges i CSS-liknande block. Klara byggnader har skapats för Linux, Windows och macOS.
Bland nyheterna finns minimap-lĂ€get (InstĂ€llningar > Textredigerare > Visa > Aktivera minimap), som visar en miniatyrbild av allt innehĂ„ll bredvid rullningsfĂ€ltet, vilket gör att hela koden kan överblickas pĂ„ en gĂ„ng. Det finns ocksĂ„ en enkel MCP-server integrerad för att samarbeta med AI-assistenter, som gör det möjligt att öppna filer och projekt, starta byggen och utföra debugging. BygginstĂ€llningarna för externa enheter har förenklats â en knapp för Automatiskt upptĂ€ckande har lagts till för att automatiskt identifiera versionen av Qt, kompilatorn, debuggern och CMake efter registrering av enheten. DirektĂ„tkomst till filsystemen pĂ„ anslutna enheter, Android-enheter och emulatorer har implementerats.

KĂ€lla: opennet.ru





