Rilascio del framework Qt 5.15

Introdotto rilascio di un framework multipiattaforma Qt 5.15. Il codice sorgente per i componenti Qt è fornito sotto le licenze LGPLv3 e GPLv2. A dicembre verrà pubblicato un nuovo ramo di Qt 6, in cui sono attesi significative modifiche architettoniche. Per agevolare la futura transizione al ramo Qt 6, Qt 5.15 include implementazioni in anteprima di alcune nuove funzionalità e aggiunti avvisi sull'imminente deprecazione delle funzionalità previste per la rimozione in Qt 6.

Qt 5.15 è classificata come versione con supporto a lungo termine (LTS). Allo stesso tempo, per la comunità si aggiorna al ramo 5.15 sarà pubblicato solo fino a quando non si formerà la prossima emissione significativa, vale a dire circa sei mesi. Il ciclo LTS esteso, che prevede la generazione di aggiornamenti in un periodo di tre anni, sarà limitato agli utenti con una licenza commerciale (5508 dollari all’anno per sviluppatore per le aziende regolari e 499 dollari all’anno per startup e piccole imprese). Anche la compagnia Qt considerato la possibilità di passare al modello di distribuzione Qt, in cui tutte le versioni per i primi 12 mesi saranno distribuite solo agli utenti di licenze commerciali. Ma finora questa idea non è andata oltre la discussione.

Il principale innovazioni in Qt 5.15:

  • È proseguito il lavoro sulla creazione di un'API grafica astratta che non dipenda dall'API 3D del sistema operativo. Un componente chiave del nuovo stack grafico Qt è il motore di rendering delle scene, che utilizza il livello RHI (Rendering Hardware Interface) per alimentare le applicazioni Qt Quick non solo con OpenGL, ma anche sulle API Vulkan, Metal e Direct 3D. Nella 5.15, il nuovo stack grafico viene offerto sotto forma di un'opzione che ha lo stato di "Anteprima tecnologica".
  • Supporto completo del modulo fornito Qt Veloce 3D, da cui è stato rimosso il segno dello sviluppo sperimentale. Qt Quick 3D fornisce un'API unificata per la creazione di interfacce utente basate su Qt Quick che combinano elementi grafici 2D e 3D. La nuova API consente di utilizzare QML per definire elementi dell'interfaccia 3D senza utilizzare il formato UIP. In Qt Quick 3D, puoi utilizzare un runtime (Qt Quick), un layout di scena e un framework di animazione per 2D e 3D e utilizzare Qt Design Studio per lo sviluppo dell'interfaccia visiva. Il modulo risolve problemi come un grande sovraccarico durante l'integrazione di QML con contenuti di Qt 3D o 3D Studio e offre la possibilità di sincronizzare animazioni e trasformazioni a livello di fotogramma tra 2D e 3D.

    Le nuove funzionalità aggiunte a Qt Quick 3D includono il supporto per effetti di post-elaborazione, un'API C++ per la manipolazione della geometria, un'API di rotazione basata sulla classe QQuaternion e il supporto per luci puntiformi. Per valutare le varie funzionalità di Qt Quick 3D preparato una speciale applicazione demo che mostra come modificare tipi e fonti di illuminazione, utilizzare modelli complessi, manipolare trame, materiali e anti-aliasing. Contemporaneamente proposto problema ambiente per progettare l'interfaccia utente di Qt Design Studio 1.5, che fornisce il supporto completo per Qt Quick 3D.


  • In Qt QML il lavoro era concentrato in preparazione per Qt 6. È stata implementata la possibilità di utilizzare proprietà con l'attributo 'required' nei componenti la cui installazione è obbligatoria. L'utilità qmllint ha migliorato la generazione di avvisi su possibili problemi nel codice QML. Aggiunta l'utilità qmlformat, che semplifica la formattazione del codice QML in conformità con le linee guida sullo stile di codifica. Compatibilità garantita di QML con l'edizione Qt per microcontrollori.
  • In Qt Quick, il supporto per gli spazi colore è stato aggiunto all'elemento Immagine. Un nuovo elemento PathText è stato aggiunto a Qt Quick Shapes.
    Al gestore del puntatore è stata aggiunta una proprietà cursorShape, tramite la quale è possibile modificare la forma del cursore del mouse sui sistemi desktop. Aggiunto un elemento HeaderView per semplificare l'aggiunta di intestazioni verticali e orizzontali alle tabelle basate su TableView.

  • Il supporto delle decorazioni delle finestre (CSD) lato client è stato notevolmente migliorato, consentendo a un'applicazione di definire le proprie decorazioni delle finestre e posizionare contenuto personalizzato nella barra del titolo della finestra.
  • Modulo stabilizzato Qt Lottie, che fornisce un'API QML avanzata che consente di eseguire il rendering di grafica e animazioni esportate in formato JSON utilizzando il plug-in Bodymovin per Adobe After Effects. Grazie a QtLottie, un designer può preparare effetti di animazione in una comoda applicazione e uno sviluppatore può collegare direttamente i file esportati all'interfaccia dell'applicazione su QtQuick. QtLottie include un micro motore integrato per eseguire animazioni, ritagli, sovrapposizioni e altri effetti. Il motore è accessibile tramite l'elemento QML LottieAnimation, che può essere controllato dal codice QML allo stesso modo di qualsiasi altro elemento QtQuick.
  • Il motore del browser Qt WebEngine è stato aggiornato al codice base Chromium 80 (nel ramo 5.14 è stato utilizzato Chromium 77, la versione attuale è Chromium 83).
  • Il modulo Qt 3D ha strumenti di profilazione e debug migliorati.
  • Qt Multimedia ha aggiunto il supporto per il rendering multisuperficie.
  • Nella GUI Qt, le operazioni di ridimensionamento e trasformazione delle immagini sono ora multi-thread in molti casi.
  • Qt Network ha aggiunto il supporto per timeout personalizzati e scorciatoie di sessione in TLS 1.3 (Session Ticket, consente di riprendere una sessione senza salvare lo stato sul lato server).
  • Abilitato Qt Core, QRunnable e QThreadPool per funzionare con std::function. Aggiunto un nuovo metodo QFile::moveToTrash() per spostare gli elementi nel cestino, tenendo conto delle specifiche delle diverse piattaforme.
  • In Qt per Android aggiunto Supporto per finestre di dialogo native per l'apertura e il salvataggio dei file.

Fonte: opennet.ru

Aggiungi un commento