Qt Company har offentliggjort udgivelsen af Qt 6.4 rammeværket, hvor arbejdet med stabilisering og udvidelse af funktionaliteten i Qt 6 fortsætter. Qt 6.4 understøtter platformene Windows 10+, macOS 10.15+, Linux (Ubuntu 20.04, CentOS 8.2, openSUSE 15.3, SUSE 15 SP2), iOS 14+, Android 6+ (API 23+), webOS, WebAssembly, INTEGRITY og QNX. Kildekoderne til Qt-komponenterne leveres under licenserne LGPLv3 og GPLv2.
Væsentlige ændringer i Qt 6.4:
- Der er implementeret fuld support til WebAssembly-platformen, som muliggør oprettelse af Qt-applikationer, der kører i webbrowseren og kan overføres mellem forskellige hardwareplatforme. Applikationer, der er kompileret til WebAssembly-platformen, udføres med en ydeevne tæt på native kode takket være JIT-kompilering, og de kan bruge Qt Quick, Qt Quick 3D og de tilgængelige visualiseringsværktøjer i Qt. Da en WebAssembly-baseret applikation kører i et isoleret browser-miljø, er adgangen til nogle API'er til arbejde med lokale ressourcer og operativsystemtjenester begrænset, men der tilbydes yderligere API'er til integration med browseren.
- Qt TextToSpeech-modulet, som blev leveret i Qt 5, men ikke indgår i Qt 6, er blevet tilføjet til hovedmodulet. Modulet tilbyder værktøjer til talegenerering, der kan bruges til at forbedre tilgængeligheden af applikationer for personer med handicap eller til at implementere nye metoder til baggrundsinformering af brugeren, f.eks. til at vise meddelelser i applikationer til bilers informations- og underholdningssystemer. På Linux udføres tekst til tale ved hjælp af Speech Dispatcher-biblioteket (libspeechd), mens det på andre platforme gøres via systemets indbyggede API.
- Der er tilføjet et eksperimentelt modul med implementering af iOS-stil til Qt Quick. Applikationer baseret på Qt Quick Controls kan automatisk bruge dette modul til at skabe et native brugergrænseflade-design på iOS-platformen, på samme måde som det native design anvendes i Windows, macOS og Android.


- Der er tilføjet et eksperimentelt modul QtHttpServer, der muliggør integration af HTTP-serverfunktionalitet i applikationer, som understøtter HTTP/1.1, TLS/HTTPS, WebSockets, fejlbehandling, ruteanmodninger grundet parametre i URL'en (QHttpServerRouter) og REST API.
- Der er tilføjet et eksperimentelt modul til Qt Quick 3D Physics, som giver et API til simulering af fysiske processer, der kan bruges sammen med Qt Quick 3D til realistisk interaktion og bevægelse af objekter i 3D-scener. Implementeringen er baseret på PhysX-motoren.
- Qt Quick 3D-modulet har fået eksperimentel støtte til global belysning ved brug af belysningskort, der gør det muligt at simulere lys fra forskellige kilder mere realistisk i 3D-scenen. Der er også implementeret støtte til lineære partikler, glatte materialer, udvidede refleksionsindstillinger, skybokse og brugerdefinerede materialer og teksturer.

- Mulighederne for de tilgængelige typer TableView og TreeView i Qt Quick er blevet udvidet, hvor der nu er støtte til navigation ved hjælp af tastatur, markering af rækker og kolonner, mere fuldstændig kontrol over celleposition, animation, samt foldning og udfoldning af træstrukturer.
- Der er præsenteret en ny type FrameAnimation i Qt Quick, der gør det muligt at udføre kode synkront med animationsrammerne. For at forbedre animationsglathed er der også sikret automatisk håndtering af ukorrekt vsync-synkronisering ved multitrådet rendering i Qt Quick.

- QQuickWidget, der muliggør oprettelse af grænseflader, der kombinerer elementer baseret på Qt Quick og Qt Widget, har fået fuld støtte til RHI (Rendering Hardware Interface), hvilket muliggør drift ikke kun ved hjælp af OpenGL, men også oven på API'er som Vulkan, Metal og Direct 3D.
- Qt Network-modulet har fået klassen QSslServer, som gør det muligt at oprette effektive netværk, servereder bruger TLS til at etablere en sikker kommunikationskanal.
- Qt Multimedia-modulet har fået en eksperimentel backend, der bruger FFmpeg-pakken til at behandle video og lyd. Under videoafspilning er farverum og HDR-håndtering forbedret, samt muligheden for at indsætte undertekster via QVideoFrames. Der er tilføjet støtte til rumligt lyd, hvilket gør det muligt at skabe scener med tredimensionel lydfordeling og simulere virtuelle rum med lydreflekteringskarakteristika afhængigt af lytterens placering, rummets størrelse og væg- og gulvmaterialer.
- I modulet Qt Widgets er klassen QFormLayout udvidet med værktøjer til at opbygge grænseflader til indsamling af struktureret brugerinput. I klassen QWizard, der er designet til at skabe trin-for-trin grænseflader, er API'erne til at styre synligheden af linjer i formularerne og navigere til hvilken som helst side i guiden blevet tilføjet.
- I QML er understøttelsen af værdityper forbedret, hvilket forenkler overførslen af strukturerede data fra C++ til QML. Sådanne typer og lister af disse typer kan nu bruges i egenskaber uden indpakning i QObject. Mulighederne for LSP-serveren til at integrere understøttelsen af QML-sprog i integrerede udviklingsmiljøer er blevet udvidet. QML Type Compiler, der gør det muligt at kompilere QML-repræsentation til C++-kode, er nu aktiveret som standard.
- Mulighederne for at arbejde med strenglitteraler i koden er blevet udvidet — klasserne QStringEncoder og QStringDecoder har fået understøttelse af alle encodinger tilgængelige i ICU (International Components for Unicode).
- I klassen QTextDocuments er understøttelsen af Markdown-notation blevet tilføjet.
Kilde: opennet.ru




