L'azienda Qt Company ha rilasciato il framework Qt 6.4, continuando il lavoro di stabilizzazione e ampliamento delle funzionalità della branch Qt 6. In Qt 6.4 è garantito il supporto per le piattaforme 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 e QNX. I codici sorgente dei componenti di Qt sono forniti sotto le licenze LGPLv3 e GPLv2.
Principali novità in Qt 6.4:
- È stata implementata un'eccellente supporto per la piattaforma WebAssembly, che consente di creare applicazioni Qt utilizzabili nel browser web e portabili tra diverse piattaforme hardware. Le applicazioni compilate per la piattaforma WebAssembly, grazie alla compilazione JIT, eseguono con prestazioni vicine a quelle del codice nativo, possono utilizzare Qt Quick, Qt Quick 3D e gli strumenti di visualizzazione disponibili in Qt. Poiché l'applicazione basata su WebAssembly viene eseguita in un ambiente isolato nel browser, l'accesso a determinate API per lavorare con risorse locali e servizi del sistema operativo è limitato, ma vengono forniti API aggiuntivi per l'integrazione con il browser.
- È stato reintegrato il modulo Qt TextToSpeech, fornito con Qt 5, ma non incluso nella serie Qt 6. Questo modulo offre strumenti per la sintesi vocale, che possono essere utilizzati per migliorare l'accessibilità delle applicazioni per le persone con disabilità o per implementare nuovi metodi di informazione in background per l'utente, ad esempio, per visualizzare notifiche in applicazioni per sistemi di infotainment automobilistico. Su Linux, la conversione da testo a voce avviene tramite la libreria Speech Dispatcher (libspeechd), mentre su altre piattaforme tramite l'API nativa del sistema operativo.
- Aggiunto un modulo sperimentale per l'implementazione dello stile iOS in Qt Quick. Le applicazioni basate su Qt Quick Controls possono utilizzare automaticamente questo modulo per creare un'interfaccia nativa su piattaforma iOS, analogamente a come si applica l'interfaccia nativa in Windows, macOS e Android.


- È stato aggiunto un modulo sperimentale QtHttpServer, che consente di integrare nelle applicazioni la funzionalità di un server HTTP, supportando HTTP/1.1, TLS/HTTPS, WebSockets, gestione degli errori, routing delle richieste basato su parametri nell'URL (QHttpServerRouter) e REST API.
- È stato aggiunto un modulo sperimentale Qt Quick 3D Physics, che fornisce un'API per la simulazione di processi fisici, utilizzabile insieme a Qt Quick 3D per interazioni e movimenti realistici degli oggetti nelle scene 3D. L'implementazione si basa sul motore PhysX.
- Il modulo Qt Quick 3D ha ricevuto il supporto sperimentale per l'illuminazione globale tramite mappe di illuminazione, che consentono di simulare in modo più realista la luce proveniente da diverse sorgenti nella scena 3D. In Qt Quick 3D è inoltre stato implementato il supporto per particelle lineari, materiali lucidi, impostazioni avanzate di riflessione, skybox e materiali e texture personalizzati.

- Sono state ampliate le funzionalità dei tipi TableView e TreeView in Qt Quick, con supporto per la navigazione tramite tastiera, selezione di righe e colonne, un controllo più completo sulla posizione delle celle, l'animazione, e l'espansione e riduzione delle strutture ad albero.
- Qt Quick presenta un nuovo tipo FrameAnimation, che consente di eseguire codice in sincronia con i fotogrammi dell'animazione. Per migliorare la fluidità delle animazioni, Qt Quick offre anche una gestione automatica della sincronizzazione vsync errata durante il rendering multithread.

- Nel widget QQuickWidget, che consente di creare interfacce combinando elementi basati su Qt Quick e Qt Widget, è stata implementata un supporto completo per il livello RHI (Rendering Hardware Interface), che permette di lavorare non solo con OpenGL, ma anche con API Vulkan, Metal e Direct 3D.
- Nel modulo Qt Network è stata aggiunta la classe QSslServer, che consente di creare reti efficienti server, utilizzando TLS per stabilire un canale di comunicazione sicuro.
- Nel modulo Qt Multimedia è stato aggiunto un backend sperimentale che utilizza il pacchetto FFmpeg per l'elaborazione di video e audio. È stato migliorato il trattamento degli spazi cromatici e dell'HDR durante la riproduzione dei video, e aggiunta la possibilità di sostituire i sottotitoli tramite QVideoFrames. È stato implementato il supporto per il suono spaziale, che consente di creare scene con distribuzione tridimensionale del suono e di simulare stanze virtuali con caratteristiche di riflessione del suono in base alla posizione dell'ascoltatore, alle dimensioni della stanza e ai materiali delle pareti e del pavimento.
- Nel modulo Qt Widgets, la classe QFormLayout è stata ampliata con strumenti per la creazione di interfacce per la cattura di input utente strutturato. Nella classe QWizard, progettata per la creazione di interfacce multi-step, sono stati aggiunti API per gestire la visibilità delle righe nei moduli e per passare a qualsiasi pagina nel wizard.
- In QML, the support for value types has been enhanced, simplifying the transfer of structured data from C++ to QML. Such types and lists of these types can now be used in properties without QObject wrapping. The capabilities of the LSP server have been expanded to integrate QML language support into development environments. The QML Type Compiler is included by default, enabling the compilation of QML representation into C++ code.
- Enhanced capabilities for working with string literals in the code — the QStringEncoder and QStringDecoder classes now support all encodings available in ICU (International Components for Unicode).
- Support for Markdown formatting has been added to the QTextDocuments class.
Fonte: opennet.ru




