Uscita del framework Qt 6.11

La Qt Company ha pubblicato il rilascio del framework Qt 6.11, in cui è proseguita l'opera di stabilizzazione e ampliamento delle funzionalità della serie Qt 6. In Qt 6.11 è fornito supporto per le piattaforme Windows 10+, macOS 13+, Linux (Ubuntu 22.04/24.04, openSUSE 15.6/16, SUSE 15 SP6, RHEL 8.10/9.6/10, Debian 11.6/12), iOS 17+, Android 9+ (API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS e QNX. I sorgenti dei componenti Qt sono forniti sotto licenze LGPLv3 e GPLv2. Qt 6.11 ha ottenuto lo status di release intermedia, con supporto pubblico disponibile per 6 mesi (+ altri 6 mesi per gli utenti commerciali).

Le principali novità di Qt 6.11:

  • Aggiunto il modulo Qt Canvas Painter, che fornisce un'API per il rendering hardware accelerato di contenuti 2D, sviluppato tenendo conto della specifica HTML Canvas 2D Context. Per il rendering è stato utilizzato il motore RHI (Rendering Hardware Interface), che supporta diverse API 3D (OpenGL, Vulkan, Metal e Direct 3D), il che ha permesso di ottenere un notevole aumento delle prestazioni. Nei test condotti, Qt Canvas Painter si è rivelato due volte più veloce di QPainter con backend OpenGL su un tipico laptop Lenovo ThinkPad P16 Gen 2, cinque volte più veloce su un tablet Android entry-level Lenovo Tab M10 HD e dieci volte più veloce su un tablet Android di fascia alta Samsung Galaxy Tab S8.
    Uscita del framework Qt 6.11

    Oltre all'alta performance, Qt Canvas Painter implementa il supporto per funzionalità avanzate, come l'anti-aliasing personalizzabile, i gradienti di contorno e le ombre (QCanvasBoxGradient e QCanvasBoxShadow, simili alla proprietà CSS box-shadow), i modelli a griglia (QCanvasGridPattern), pennelli con shader personalizzati e effetti di colore per modificare la trasparenza, la luminosità, il contrasto e la saturazione.

    Uscita del framework Qt 6.11
  • La funzionalità del modulo Qt Quick 3D si avvicina a quella dei motori di gioco. È stata aggiunta la supporto alla tecnica di rendering SSGI (Screen Space Global Illumination) per simulare il riflesso della luce dalle superfici nella fase di post-elaborazione (un'alternativa al baking delle lightmap) e SSR (Screen Space Reflections) per rendering realistico delle riflessioni in tempo reale. L'algoritmo di smoothing per oggetti in movimento è migliorato grazie alla generazione di vettori di movimento per ogni oggetto. Sono stati implementati passaggi di rendering personalizzabili (render-pass), utilizzabili direttamente da QML per maschere di livello, effetti di post-elaborazione e rilevazione degli oggetti per colore (color picking). Sono state aggiunte nuove interfacce per livelli e tag, permettendo il controllo dei singoli passaggi di rendering, l'attivazione degli elementi in diverse fasi del convegno di rendering (render pipeline) e il reindirizzamento verso buffer di rendering target.
    Uscita del framework Qt 6.11
  • Le funzionalità del modulo Qt Graphs sono state ampliate. È stato aggiunto il tipo CustomSeries, che consente di creare grafici personalizzati, in cui un delegato specificato dall'utente si occupa del rendering di ciascun elemento dei dati. Nella grafica 3D è stata implementata la supporto per più istanze di assi; ad esempio, in QBar3DSeries è possibile utilizzare assi separati per rowAxis, valueAxis e columnAxis, mentre in QScatter3DSeries e QSurface3DSeries sono disponibili assi separati per axisX, axisY e axisZ. Sono state aggiunte nuove proprietà per sovrascrivere i colori di assi specifici, configurare i gradienti sui grafici e modificare lo stile delle linee e il posizionamento delle etichette. È stato aggiunto un esempio della creazione di grafici 2D e 3D personalizzati — Wind Turbine Dashboard.
    Uscita del framework Qt 6.11
  • È stato aggiunto un modulo sperimentale Qt TaskTree, che fornisce un approccio dichiarativo per creare ed eseguire attività asincrone in C++. I componenti chiave di Qt TaskTree includono: "ricette" — oggetti riutilizzabili che descrivono il workflow asincrono; "gruppi" — che definiscono politiche per le attività figlie; "archivio" per condividere dati tra attività; "iteratori" per cicli e ripetizioni delle attività. Qt TaskTree affronta anche il problema dell'incompatibilità tra API, unificando diverse API asincrone in un'interfaccia tipizzata.
    Uscita del framework Qt 6.11
  • Sono state ampliate le funzionalità per lavorare con grafica vettoriale animata, generata da immagini nei formati SVG e Lottie. Stabilizzati il modulo Qt Quick VectorImage e lo strumento lottietoqml. Aggiunta la supporto per animazione morphing, maschere SVG, simboli SVG e livelli di maschera (matte layer, per gestire la visibilità di un altro livello).
  • Nella Qt Quick Controls è stato aggiunto il componente DoubleSpinBox. Nel DialogButtonBox è stata implementata la gestione del comportamento dei pulsanti predefiniti. Nell'effetto RectangularShadow è stata introdotta la gestione indipendente dei raggi degli angoli.
  • In Qt Widgets, the QWizard now includes a StretchBanner option; in QAbstractItemView, the keyboardSearchFlags parameter has been implemented for configuring search behavior as keys are pressed; a property for controlling the visibility of previews has been added to QColumnView.
  • A new Qt OpenAPI module has been added, allowing the generation of HTTP client code that uses the Qt Networks RESTful API based on OpenAPI specifications in YAML format.
  • The Qt GRPC module has introduced a mechanism for managing the flow and content of requests and responses.
  • In the Qt HTTP Server module, control over limits has been expanded and response handling in worker threads has been improved. QNetworkRequest now allows configuration of TCP Keep Alive parameters (by default, inactive connections are automatically terminated after 2 minutes).
  • In the QML Language Server, used for integration with IDEs, information about the location of QML type definitions in C++ code has been added to simplify navigation between QML and C++ from the IDE — when working with C++ code, it's possible to locate QML objects by identifiers and easily traverse the QML context hierarchy.
  • In aggiunta a QRangeModel, è stata implementata la classe QRangeModelAdapter, che fornisce un'API C++ per modificare i dati del modello, interagendo tramite il protocollo QAbstractItemModel. Questo semplifica il trasferimento di dati dal codice backend C++ a Qt Quick o Qt Widget.
  • È stata aggiunta la compatibilità con la piattaforma Android 16. È stata implementata la funzionalità Google Play Feature Delivery per suddividere l'app in pacchetti (il pacchetto principale è installato da Google Play immediatamente, mentre quelli aggiuntivi vengono scaricati secondo necessità). Per Android Automotive è stata realizzata la possibilità di avviare Qt senza dipendenze da Android per un rapido avvio del rendering.

Inoltre, si segnala la recente pubblicazione della release dell'ambiente di sviluppo integrato Qt Creator 19, progettato per la creazione di applicazioni multipiattaforma utilizzando la libreria Qt. È supportato sia lo sviluppo di programmi classici in C++, sia l'uso del linguaggio QML, in cui per definire gli scenari viene utilizzato JavaScript, e la struttura e i parametri degli elementi dell'interfaccia vengono definiti tramite blocchi simili a CSS. Le build pronte sono state create per Linux, Windows e macOS.

Tra le novità spicca la modalità minimap (Preferenze > Editor di testo > Visualizzazione > Attiva minimap), che mostra accanto alla barra di scorrimento una miniatura di tutto il contenuto, permettendo di catturare in un colpo d'occhio l'intero codice. È incluso un semplice server MCP per l'integrazione con gli assistenti AI, consentendo di aprire file e progetti, avviare compilazioni e effettuare il debug. La configurazione della compilazione su dispositivi esterni è semplificata — è stato aggiunto il pulsante Esegui Auto-Rilevamento per identificare automaticamente la versione di Qt, il compilatore, il debugger e CMake dopo la registrazione del dispositivo. È stata implementata la possibilità di accesso diretto ai file system dei dispositivi collegati, dispositivi Android ed emulatori.

Uscita del framework Qt 6.11


Fonte: opennet.ru
Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster