Qt Company har lansert en ny versjon av Qt-rammeverket, Qt 6.9, hvor arbeidet med å stabilisere og utvide funksjonaliteten til Qt 6-familien fortsetter. Qt 6.9 støtter plattformene Windows 10+, macOS 12+, Linux (Ubuntu 22.04/24.04, openSUSE 15.5, SUSE 15 SP5, RHEL 8.10/9.4, Debian 11.6), iOS 16+, Android 9+(API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS og QNX. Kildekoden for Qt-komponentene leveres under LGPLv3- og GPLv2-lisenser. Qt 6.9 er en mellomversjon, med offentlig støtte i 6 måneder (+ ytterligere 6 måneder for kommersielle brukere).
Hovedendringer i Qt 6.9:
- Utviklingen av Qt Graphs-modulen, som er laget for å lage 2D- og 3D-diagrammer, samt visualisere store samlinger av raskt skiftende data, har fortsatt. Modulen bruker Qt Quick 3D og RHI (Rendering Hardware Interface) som støtter forskjellige 3D API-er (OpenGL, Vulkan, Metal og Direct 3D). Den nye versjonen har fått støtte for gjennomsiktighet i QML-typen Surface3D, QSpline3DSeries-klassen er implementert for å tegne data som 3D-splines, og det er lagt til flere tilpasningsmuligheter for diagrammer, akser og etiketter. Det er nå mulig å integrere diagrammer i applikasjoner basert på Qt Quick 3D, ved hjelp av egenskapen «importScene» i View3D-baserte scener. Innstillingene for input-parametere i 2D-diagrammer er forenklet. QGraphsView har fått støtte for nøyaktig posisjonering av plottområdet.

- Det er nå mulig å identifisere emoji-koder i teksten og bruke korrekte fargefontene for deres visning. I QFontDatabase er det lagt til en ny API for valg av fontfamilie for emoji. For øyeblikket støttes fonter i formatene CBDT og COLRv1. Parsing av emoji kan slås av hvis ønskelig.


- Det er lagt til API for å lage grensesnitt der grensesnittselementer blandes med innholdet og ikke distraherer brukeren (innholdet dekker hele vindusområdet, uten oppdeling av overskrift). For å utvide applikasjonsgrensesnittet over hele vinduet, er flagget Qt.ExpandedClientAreaHint lagt til, og for å markere områder med hjelpeelementer som overskrifter, bunntekster og menyer, som ikke skal overlappe med interne grensesnittselementer i applikasjonen, er egenskapen «SafeArea» implementert i Qt Quick.

- Qt SVG-modulen har fått innledende støtte for CSS-animasjon, som foreløpig bare gjelder egenskaper som «color», «fill», «stroke» og «transform».
- Det er gjort arbeid for å forbedre ytelsen.
- På systemer med hybride CPU-er, utstyrt med separate høyytelses- og energieffektive kjerner, har QThread fått muligheten til å overføre en hint til planleggeren om hvilken type CPU-kjerner den angitte tråden bør kjøres på.
- For applikasjoner som bruker QQuickPaintedItem med OpenGL, er det tillatt å bruke FramebufferObject-rittemodusen, hvor maskinvareakselerasjon benyttes.
- I RHI-backenden (Rendering Hardware Interface) for OpenGL ES er et utvidelsessystem aktivert med støtte for multisampling-ritning, som øker ytelsen på Qt Quick og Qt Quick 3D på moderne GPU-er.
- I RHI-backenden for Direct 3D er det lagt til en egen tråd for å overvåke fullføringen av vertikal synkronisering (vblank), noe som har bidratt til å redusere forsinkelser i interaktive grensesnitt.
- I alle RHI-backender unntatt OpenGL er det lagt til støtte for mekanismen Variable Rate Shading (VRS), som muliggjør rendering i virtuelle virkelighetsapplikasjoner basert på Quick 3D XR med hensyn til brukerens blikkretning.
- I Qt Quick er det introdusert et nytt element, RectangularShadow, som reduserer CPU-belastningen ved bruk av skygge- og glødeeffekter i grensesnittet.
- I QHeaderView-klassen er minnebruken betydelig redusert ved å deaktivere størrelseendring og omorganisering av seksjoner.
- I Quick 3D er teknikken «Weighted Blended» implementert, noe som gjør det mulig å renderere gjennomsiktige objekter uten å utføre separate dybdesorteringsoperasjoner. Den implementerte teknikken eliminerer forekomsten av artefakter fra uriktig sortering, som oppstår når objekter overlapper hverandre. Når det gjelder prosessorbelastning og minnebruk er den nye metoden identisk med den gamle.

- Qt Network Authorization-modulen er lagt til, som tilbyr et API for autentisering ved hjelp av OAuth1- og OAuth2-protokoller som kan brukes til å få tilgang til nettjenester uten å avsløre brukernavnet.
- Arbeidet med å styrke beskyttelsen av Qt HTTP Server-modulen er fullført. I QHttpServerConfiguration er det lagt til mulighet for å begrense det maksimale antallet innkommende forespørseler. I QHttp2Configuration for HTTP/2-kunder er det lagt til støtte for å konfigurere det maksimale antallet samtidig opprettede tråder.
- I QML Language Server, implementeringene serveren LSP (Language Server Protocol) for QML gir informasjon om strukturen i QML, noe som muliggjør visning av hierarkisk representasjon av QML-strukturen i kode-redigerere og integrerte utviklingsmiljøer.
- I Qt Quick er en ny komponent, ContextMenu, lagt til for å forenkle tilknytningen av kontekstmenyer til elementer, åpnet ved spesifikke plattformhendelser, som høyreklikk. For komponentene TextField og TextArea er det lagt til kontekstmenyer som standard.
Kilde: opennet.ru





