L'azienda Qt Company ha pubblicato il rilascio del framework Qt 6.6, nel quale è proseguito il lavoro di stabilizzazione e ampliamento delle funzionalità della branca Qt 6. In Qt 6.6 è garantito il supporto per le piattaforme Windows 10+, macOS 11+, Linux (Ubuntu 22.04, openSUSE 15.4, SUSE 15 SP4, RHEL 8.6/9.0), iOS 14+, Android 8+ (API 23+), webOS, WebAssembly, INTEGRITY e QNX. I codici sorgente dei componenti Qt sono forniti sotto le licenze LGPLv3 e GPLv2.
Principali novità in Qt 6.6:
- Nel modulo Qt Quick è stato implementato il supporto sperimentale per il layout adattivo dell'interfaccia. Per modificare dinamicamente il layout dell'interfaccia in base alla dimensione della finestra e per il posizionamento automatico degli elementi secondo la struttura del layout attuale è stata proposta la classe LayoutItemProxy, e nel modulo Qt Quick Layouts è stata fornita la possibilità di utilizzare dimensioni uniformi per le celle nelle disposizioni a griglia, righe e colonne.

- In Qt Quick è stato aggiunto il supporto per le modalità di selezione (proprietà selectionMode) nel tipo QML TableView (ad esempio, è possibile gestire la selezione di celle, righe, colonne e insiemi di celle), è stata fornita la possibilità di modificare la proprietà rootIndex, nel tipo QML TreeView è stato esteso il controllo sullo stile delle barre di scorrimento (scroll-deceleration) nel tipo QML Flickable, ed è stata implementata la riduzione automatica dei percorsi dei file. È stato fornito l'accesso da QML all'API di gestione delle autorizzazioni.
- È stato aggiunto un modulo sperimentale Qt Graphs, volto a fornire un modulo universale per la visualizzazione di grandi collezioni di dati in rapida evoluzione e la creazione di diversi tipi di grafici. Il modulo si sta sviluppando come una sostituzione universale del vecchio modulo Qt DataVisualization, legato a OpenGL, e del modulo Qt Charts. Il modulo è ancora in fase di sviluppo e attualmente si concentra sulla riproduzione delle funzionalità di Qt DataVisualization sopra Qt Quick 3D e sull'impiego di un nuovo motore di rendering (RHI, Rendering Hardware Interface), che supporta diverse API 3D (OpenGL, Vulkan, Metal e Direct 3D).

- Nel modulo Qt Multimedia è stata aggiunta la classe QWindowCapture per catturare il contenuto di singole finestre, completando la classe QScreenCapture, presente nella precedente versione, che era limitata alla cattura dell'intero schermo. QWindowCapture consente di ottenere un elenco delle finestre disponibili per la cattura e può essere utilizzata in applicazioni per fornire la condivisione delle finestre. La cattura delle finestre e dello schermo è supportata utilizzando il backend FFmpeg su tutte le piattaforme, ad eccezione dei sistemi che utilizzano il protocollo Wayland.
- Alla classe QMediaRecorder sono state aggiunte proprietà per gestire la qualità del video, la risoluzione e il bitrate.
- Sono state ampliate le funzionalità dei moduli Qt GRPC e Qt Protobuf, che consentono l'accesso ai servizi gRPC e la serializzazione delle classi Qt utilizzando il protocollo Protocol Buffer. In Qt GRPC sono state aggiunte nuove opzioni QGrpcChannelOptions e QGrpcCallOptions per semplificare la configurazione dei canali e delle chiamate, oltre a limitare il tempo massimo di esecuzione di una chiamata o di un flusso. È stata aggiunta l'opzione QGrpcMetadata per impostare i metadati dal lato client e leggere i metadati restituiti. server. In Qt GRPC è stata integrata la compatibilità con il tipo QML per la generazione automatica delle classi client QtGRPC. In Qt Protobuf è stato consentito l'inclusione nello schema *.proto di alcuni tipi di Qt Core e Qt GUI, oltre a fornire l'accesso ai contesti QML tramite le classi QProtobufMessage. È stata aggiunta la compatibilità con i tipi google.protobuf.Any e oneof.
- Nel modulo Qt WebEngine è stata aggiunta un'API per accedere alle impostazioni di privacy e sicurezza, che consente di disabilitare alcune funzionalità del motore del browser. Ad esempio, tramite gli attributi QWebEngineUrlScheme::FetchApiAllowed e QWebEngineSettings::DisableReadingFromCanvas è possibile disabilitare l'API Fetch e il rendering degli elementi Canvas per ridurre il rischio di identificazione passiva. È stata aggiunta la compatibilità con l'URL interno «chrome://qt», che apre una pagina con informazioni sulla versione del motore Chromium utilizzata.
- Nel modulo Qt Sql è stato aggiunto un plugin con supporto per il database Mimer SQL, sono state ampliate le impostazioni di connessione nel driver per i database MySQL e MariaDB.
- Nel modulo Qt PDF sono state fornite classi per accedere a link, miniature delle pagine e pagine selezionate.
- In Qt Quick, the Font type has implemented a new API for advanced glyph layout (shaping) configuration in OpenType fonts. It provides the option to use the Qt Quick Shapes module for high-quality rendering of lines and curves using fragment shaders.

- Work has been done on documenting the RHI (Rendering Hardware Interface) rendering engine, as well as stabilizing the associated low-level API. The level of backward compatibility for RHI will now align with the Qt Platform Abstraction API, allowing direct use of RHI for developing cross-platform low-level code that works with all popular graphics stacks and graphics APIs (OpenGL, Vulkan, Metal, and Direct 3D).
- The Qt Quick 3D module has added support for procedurally creating textures and geometry based on polygonal meshes in QML.
- The Qt TextToSpeech module now supports the generation of PCM (Pulse-Code Modulation) data for further processing of synthesized speech (previously only direct output to audio devices was supported). Additional settings for text segmentation have been provided, and an API for searching for required voices along with an API for determining available engine features has been added.
- The 'Qt for Python' module set, which provides tools for creating graphical applications in Python using Qt, has added support for asynchronous operations using asyncio. Qt for Python is now compatible with devices based on the AArch64 architecture.
- The Boot2Qt stack has been updated and can be used to create bootable mobile systems with a Qt and QML-based environment. The system environment in Boot2Qt has been updated to the Yocto 4.2 (Mickledore) platform. Work is ongoing to provide ready builds of Boot2Qt for NXP boards and Renesas R-Car devices.
- Support for the Android 13 platform has been added. On Windows and Linux platforms, ARM architecture support has been improved. In conjunction with the accompanying Debian project, packages with Qt 6 for Debian 11 and Debian 12 are now available in the official distribution repositories, while Qt Company repositories have packages with commercial components of Qt 6.6 for Debian.
- Strumenti di sviluppo migliorati per la piattaforma WebAssembly, che consentono di creare applicazioni Qt funzionanti nel browser web e portabili tra diverse piattaforme hardware. Le applicazioni compilate per la piattaforma WebAssembly, grazie alla compilazione JIT, eseguono con prestazioni vicine al codice nativo, possono utilizzare Qt Quick, Qt Quick 3D e gli strumenti di visualizzazione disponibili in Qt. Nella nuova versione è stata semplificata il debug delle applicazioni per WebAssembly e migliorato il supporto per questa piattaforma grazie al supporto del collegamento dinamico (le applicazioni per WebAssembly possono ora essere fornite con librerie condivise e plugin Qt).
Fonte: opennet.ru



