Qt Company har lansert versjon 6.8 av Qt-rammeverket, hvor arbeidet med å stabilisere og utvide funksjonaliteten til Qt 6-fanen fortsetter. Qt 6.8 støtter plattformene Windows 10+, macOS 12+, Linux (Ubuntu 22.04/24.04, openSUSE 15.5, SUSE 15 SP5, RHEL 8.8/9.2, Debian 11.6), iOS 16+, Android 9+(API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS og QNX. Kildekoden til Qt-komponentene leveres under LGPLv3- og GPLv2-lisenser.
Qt 6.8 har fått status som LTS-utgivelse, hvor oppdateringer vil bli tilbudt i fem år for innehavere av kommersielle lisenser, som er to år lenger enn tidligere LTS-utgivelser. For ikke-kommersielle brukere vil støtteperioden være seks måneder (inntil en ny betydelig utgivelse dannes). Støtten for den tidligere LTS-fanen Qt 6.5 vil vare til mai 2026, mens støtten for den foregående LTS-fanen Qt 6.2 opphørte 30. september 2024. Qt 5.15-fanen vil være støttet frem til mai 2025.
Hovedendringer i Qt 6.8:
- Modulen Qt Graphs har blitt stabilisert og flyttet til kategorien av fullt støttede moduler, og er designet for å lage ulike typer 2D- og 3D-diagrammer, samt visualisering av store samlinger av hurtigskiftende data. Modulen utvikles som et universelt alternativ til den gamle modulen Qt DataVisualization basert på OpenGL, samt modulen Qt Charts. Den nye modulen benytter Qt Quick 3D og RHI (Rendering Hardware Interface) renderer-motoren, som støtter ulike 3D-API-er (OpenGL, Vulkan, Metal og Direct 3D).
Sammenlignet med forrige utgivelse har Qt Graphs 3D fått ytelsesoptimaliseringer, med støtte for gjennomsiktighet i 3D-diagrammer (Bars3D), utvidede muligheter for styring av plassering og utforming av etiketter og overskrifter, samt forbedret rendering av navigasjonsrutene. I Qt Graphs 2D er det lagt til mulighet for å tegne egendefinerte typer søylediagrammer (gjennom QML-komponenter), med støtte forstablede søylediagrammer, samt utvidede visningsalternativer for etiketter. API-en er forent for å bruke temaer i både 2D- og 3D-diagrammer. Widget-spesifikke kall er flyttet til Qt Graphs Widgets-modulen.
- Stabilisert og overført til kategorien fullt støttede moduler, QtHttpServer, som gjør det mulig å integrere funksjonaliteten til en HTTP-server i applikasjoner, som støtter HTTP/1.1, TLS/HTTPS, WebSockets, feilhåndtering, forespørselsruting basert på parametere i URL (QHttpServerRouter) og REST API. I forhold til den forrige versjonen har QNetworkAccessManager-klassen nå muligheten til å sende HTTP-forespørsler via en lokal socket. Støtte for å bruke klassen QFormDataBuilder er også lagt til, for å forenkle overføring av flere datasett (for eksempel tekstdata og vedlagte filer) i en enkelt HTTP-forespørsel (HTTP multi-part).
- Stabilisert og overført til kategorien fullt støttede moduler, Qt GRPC, som gjør det mulig å få tilgang til tjenester ved hjelp av gRPC-protokollen.
- Stabilisert og overført til kategorien fullt støttede moduler, Qt Protobuf, som er designet for å serialisere Qt-klasser ved hjelp av Protocol Buffer-protokollen.
- Støtte for mobile plattformer Android 14 og iOS 18 er lagt til.
- Muligheten for å utvikle applikasjoner for desktop-systemer Linux og Windows med ARM-prosessorer, samt 3D-headsetene Apple Vision Pro og Meta Quest 3 XR, er nå tilgjengelig.
- Støtte for Raspberry Pi 5, NVIDIA AGX Orin og enkelte bord basert på SoC NXP, Toradex og STM er lagt til. Støtte for RISC-V-brett StarFive VisionFive 2 er også inkludert.
- Mulighetene for å lage trimmede Qt-bygg har blitt utvidet, noe som kan benyttes på enheter med lite minne. For eksempel, ved å deaktivere ubrukt funksjonalitet og Qt-komponenter, kan man oppnå en reduksjon av størrelsen på bygget i permanent lagring med 77 % og en reduksjon av RAM-forbruk med 32 %, samt betydelig redusere oppstartstiden.
- I Qt Multimedia-modulen på Linux-plattformen er støtte for skjermopptak implementert ved hjelp av klassen QScreenCapture i miljøer basert på Wayland-protokollen, ved å bruke ScreenCast-tjenesten og XDG Desktop-portalsystemet. Klassene QVideoFrameInput, QAbstractVideoBuffer og QAudioBufferInput er lagt til, som muliggjør sending av egne multimediadata i en registreringsøkt (QMediaCaptureSession), samt klassen QAudioBufferOutput for tilkobling av håndterere som mottar lyddata etter dekoding.
- Det har blitt lagt til en Qt Quick Vector Image-modul som lar deg integrere vektorbilder i SVG-format i Qt Quick-scener, noe som kan brukes til å lage skalérbare grensesnittelementer som ikke avhenger av oppløsning og skjermstørrelse.

- Qt Quick 3D XR-modulen har blitt lagt til for å lage applikasjoner for virtuelle og utvidede virkelighetsplattformer ved hjelp av Qt Quick 3D-teknologier. For å organisere interaksjon med 3D-miljøer som er opprettet ved hjelp av Qt Quick 3D, støttes bruken av enheter for håndbevegelsesgjenkjenning og VR-kontrollere. Apple VisionPro-briller eller 3D-hodesett som støtter OpenXR-standarden, som Meta Quest 2/3, kan brukes for visualisering.

- Det har blitt lagt til optimaliseringer i Qt Quick som akselererer rendering av komplekse scener. I TableView-klassen er det nå mulig å flytte kolonner og rader. Typer som Image og BorderImage har fått støtte for asynkron bildeinnlasting (det gamle bildet forblir til det nye er lastet inn).
- Qt Quick Effect Maker-modulen har fått støtte for animasjon av sprites, krumning av elementer langs en sirkel, samt bruk i effekter som glød og maskert uskarphet (masked blur).
- I Qt Quick Shapes-modulen tillates bruk av teksturleverandører i elementer av typen ShapePath ved fylling av konturen. Den QQuickRenderTarget-klassen har fått nye metoder for å håndtere teksturprosessering og forenkle integrasjonen av Qt Quick 3D med eksterne motorer, rammeverk og API-er.
- Qt Quick Controls har introdusert en ny Fluent WinUI3-stil som gjør det mulig å lage grensesnitt som ser ut som Windows 11 på alle plattformer. I macOS er det nå mulig å bruke menyen som tilbys av plattformen i grensesnitt opprettet med Quick MenuBar.

- I Qt Quick 3D er rendering av skygger forbedret gjennom bruk av kaskadekart for skygger og myk skyggefiltrering. Den PrincipledMaterial-typen har fått nye egenskaper. Det er nå mulig å bruke de samme egenskapene i egne materialer som i materialene basert på PrincipledMaterial-typen.

- I Qt Network Auth-modulen er det lagt til en QOAuthUriSchemeReplyHandler-klasse for å lage omdirigeringsbehandlere til et annet URI-skjema ved autentisering med OAuth 2.0. Den QOAuth2AuthorizationCodeFlow-klassen har fått støtte for OAuth-utvidelsen PKCE (Proof Key for Code Exchange).
- Klassen QDnsLookup har fått muligheten til å sende forespørselar ved bruk av «DNS over TLS», støtte for TLSA DNS-poster (TLS Certificate Association) er implementert, og det er sørget for at klienten får informasjon om verifisering av DNS-serverdata.
- I Qt Core er klassen QChronoTimer lagt til, med en innpakning rundt biblioteket std::chrono, som muliggjør høyere nøyaktighet ved tidsoperasjoner. Det er mulig å endre størrelsen på QString, QByteArray og QList uten å initialisere dataene. QHash har fått støtte for å lagre data med typene QString og QStringView i én hash. I QDirListing er det introdusert et API basert på iteratorer for å gå gjennom innholdet i kataloger.
- I Qt GUI er det mulig å overstyre systemets fargeinnstillinger, for eksempel for å velge mørk eller lys modus, samt innstillinger for handlinger som fører til visning av kontekstmenyen.
- I Qt Sql behandler driverne for databaser PostgreSQL og MySQL/MariaDB nå tid og dato korrekt i situasjoner hvor klienten og serveren serveren er i forskjellige tidssoner.
- Qt WebEngine har fått nye klasser: QWebEngineFrame for arbeid med individuelle iframe-bokser; QWebEngineClientHints for styring av nettleseridentitet; QWebEnginePermission for styring av rettigheter i forbindelse med nettsteder.
- I Qt Widgets er tegningen av widgeter forbedret på skjermer med høy pikseltetthet (high-DPI).
- Dokumentasjonsgeneratoren QDoc er blitt overført fra C API til C++ API, og den krever nå minst Clang 17 for å fungere. Nye kommandoer, som «\keyword» og «\nativetype», er lagt til.
- Som en del av arbeidet med å øke stabiliteten og ytelsen i LTS-utgaven har det blitt gjort mer enn 500 feilrettinger og optimaliseringer.
Kilde: opennet.ru




