Qt Company har offentliggjort en udgave af frameworket Qt 6.9, hvor arbejdet med at stabilisere og øge funktionaliteten i Qt 6- serien er fortsat. Qt 6.9 tilbyder understøttelse af platforme som 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 til Qt-komponenterne leveres under licenserne LGPLv3 og GPLv2. Qt 6.9 har fået status som et internt udgivelse, som vil blive offentligt understøttet i 6 måneder (+ yderligere 6 måneder for kommercielle brugere).
De vigtigste ændringer i Qt 6.9:
- Udviklingen af Qt Graphs-modulet, der er designet til at oprette 2D- og 3D-grafer samt visualisering af store samlinger af hurtigt skiftende data, er fortsat. Modulet bruger Qt Quick 3D og RHI (Rendering Hardware Interface) rendering motoren, der understøtter forskellige 3D API'er (OpenGL, Vulkan, Metal og Direct 3D). Den nye version tilføjer understøttelse af gennemsigtighed i QML-typen Surface3D, implementerer klassen QSpline3DSeries til at tegne data som 3D-spliner, og tilføjer yderligere tilpasningsmuligheder for diagrammer, akser og etiketter. Det er nu muligt at integrere grafer i Qt Quick 3D applikationer ved hjælp af egenskaben "importScene" i View3D-baserede scener. Indstillingen af input parametre i 2D-diagrammer er blevet forenklet. QGraphsView har fået understøttelse af præcis positionering af det rektangulære område (plotArea) til visning af grafen.

- Muligheden for at bestemme koder for emoji i teksten og bruge korrekte farveskrifter til deres visning er blevet implementeret. Der er tilføjet en ny API til QFontDatabase for at vælge skrifttypes familie til emoji. I øjeblikket understøttes skrifttyper i formaterne CBDT og COLRv1. Parsing af emoji kan deaktiveres, hvis ønskes.


- Der er tilføjet en API til at skabe grænseflader, hvor brugergrænseelementer blander sig med indholdet og ikke distraherer brugeren (indholdet dækker alt vinduesrum uden at fremhæve overskriften). For at udvide grænsefladens område til hele vinduet er flaget Qt.ExpandedClientAreaHint tilføjet, og for at fremhæve områder med funktionelle elementer såsom overskrifter, fodere og menuer, der ikke skal krydse indholdet i applikationsgrænsefladen, er egenskaben "SafeArea" blevet implementeret i Qt Quick.

- Qt SVG-modulet har fået indledende støtte til CSS-animationer, som i øjeblikket kun gælder for egenskaberne «color», «fill», «stroke» og «transform».
- Der er arbejdet på at forbedre ydeevnen.
- På systemer med hybriddrevne CPU'er, der har separate højtydende og energieffektive kerner, er der tilføjet mulighed for at give planlæggeren en tip om, hvilken type CPU-kerner den angivne tråd skal køre på, i QThread.
- For applikationer, der bruger QQuickPaintedItem med OpenGL, er brug af FramebufferObject-renderingsmetoden tilladt, hvor hardwareacceleration anvendes.
- I RHI-backend (Rendering Hardware Interface) for OpenGL ES er der aktiveret en udvidelse, der understøtter multisample rendering, hvilket giver mulighed for at forbedre ydeevnen af Qt Quick og Qt Quick 3D på moderne GPU'er.
- I RHI-backend for Direct 3D er der tilføjet en separat tråd til overvågning af afslutningen af vertikal opdatering (vblank), som har reduceret forsinkelserne i interaktive grænseflader.
- I alle RHI-backends undtagen OpenGL er der tilføjet støtte til mekanismen Variable Rate Shading (VRS), der muliggør rendering baseret på brugerens synsvinkel i applikationer med virtual reality bygget på Quick 3D XR.
- I Qt Quick er der introduceret et nyt element RectangularShadow, som reducerer CPU-belastningen ved brug af skygge- og gløeeffekter i brugerfladen.
- I QHeaderView-klassen er hukommelsesforbruget blevet betydeligt reduceret ved deaktivering af størrelsesændringer og omorganisering af sektioner.
- I Quick 3D er teknikken «Weighted Blended» implementeret, som gør det muligt at redegøre for gennemsigtige objekter uden at udføre separate dybdesorteringsoperationer. Den implementerede teknik forhindrer opståen af artefakter på grund af forkert sortering, der opstår, når objekter overlapper hinanden. Med hensyn til processorbelastning og hukommelsesforbrug er den nye metode identisk med den gamle.

- Qt Network Authorization-modulet er tilføjet og tilbyder API til autentificering med OAuth1- og OAuth2-protokoller, som kan bruges til at få adgang til online-tjenester uden at afsløre brugernes adgangskode.
- Arbejdet med at styrke sikkerheden i Qt HTTP Server-modulet er gennemført. I QHttpServerConfiguration er der tilføjet mulighed for at begrænse det maksimale antal indkommende anmodninger. I QHttp2Configuration er der tilføjet støtte til at indstille det maksimale antal samtidige oprettede streams for HTTP/2-klienter.
- I QML Language Server, implementeringer server LSP (Language Server Protocol) for QML giver også oplysninger om strukturen i QML, hvilket muliggør visning af en hierarkisk repræsentation af QML-strukturen i kodeeditorer og integrerede udviklingsmiljøer.
- I Qt Quick er der tilføjet et nyt komponent ContextMenu, som forenkler bindingen af kontekstmenuer til elementer, der åbnes ved modtagelse af platformspecifikke hændelser, såsom højreklik. Standard kontekstmenuer er tilføjet til komponenterne TextField og TextArea.
Kilde: opennet.ru





