Azienda Qt Company sul trasferimento della branch alla fase di alpha testing. Qt 6 include cambiamenti architettonici significativi e richiede un compilatore che supporti lo standard C++17. Il rilascio per il 1 dicembre 2020.
Chiave Qt 6:
- API grafico astratto, indipendente dall'API 3D del sistema operativo. Un componente chiave del nuovo stack grafico di Qt è il motore di rendering delle scene, che utilizza un'interfaccia RHI (Rendering Hardware Interface) per garantire che le applicazioni Qt Quick funzionino non solo con OpenGL, ma anche su API Vulkan, Metal e Direct 3D.
- Modulo Qt Quick 3D con API per la creazione di interfacce utente basate su Qt Quick, che combinano elementi di grafica 2D e 3D. Qt Quick 3D consente di utilizzare QML per definire elementi 3D delle interfacce senza dover ricorrere al formato UIP. Con Qt Quick 3D, è possibile utilizzare un unico runtime (Qt Quick), un singolo layout della scena e un unico framework di animazione, oltre a utilizzare Qt Design Studio per lo sviluppo visivo dell'interfaccia. Questo modulo affronta problemi come le elevate spese generali nell'integrazione di QML con i contenuti di Qt 3D o 3D Studio e offre la possibilità di sincronizzare animazioni e trasformazioni a livello di singoli fotogrammi tra 2D e 3D.
- Ristrutturazione della base di codice suddivisa in componenti più piccole e riduzione delle dimensioni del prodotto di base. Gli strumenti per sviluppatori e i componenti specializzati saranno forniti come aggiunte distribuite attraverso un catalogo. .
- Significativo ammodernamento di QML:
- Supporto per il tipo rigoroso.
- Possibilità di compilare QML in rappresentazioni C++ e codice macchina.
- Conversione del supporto completo per JavaScript in una delle opzioni (l'uso di un motore JavaScript completo richiede molte risorse, ostacolando l'uso di QML su attrezzature come i microcontrollori).
- Abbandono della versioning in QML.
- Unificazione delle strutture dati duplicate in QObject e QML (permetterà di ridurre l'uso di memoria e accelerare l'avvio).
- Abbandono della generazione di strutture dati a runtime a favore della generazione durante la compilazione.
- Nascondere componenti interni tramite l'uso di metodi e proprietà private.
- Migliore integrazione con strumenti di sviluppo per il refactoring e la diagnosi degli errori durante la compilazione.
- Aggiunta di strumenti per la gestione delle risorse grafiche durante la fase di compilazione, come la conversione di immagini PNG in texture compresse o la conversione di shader e mesh in formati binari ottimizzati per specifici dispositivi.
- Incorporazione di un motore unificato per temi e stili, che permette di ottenere un aspetto coerente delle applicazioni basate su Qt Widgets e Qt Quick, nativo per diverse piattaforme mobili e desktop.
- Come sistema di build, si è deciso di utilizzare CMake al posto di QMake. La supporto per la costruzione di applicazioni tramite QMake sarà mantenuta, ma Qt sarà compilato utilizzando CMake. CMake è stato scelto poiché questo strumento ha ottenuto una vasta diffusione tra gli sviluppatori di progetti in C++ e viene supportato in molti ambienti di sviluppo integrati. La sviluppo del sistema di build Qbs, che aspirava a sostituire QMake, dalla comunità.
- Transizione allo standard C++17 (in precedenza si utilizzava C++98). In Qt 6 è prevista l'implementazione di molte delle funzionalità moderne di C++, mantenendo la compatibilità con il codice basato su standard precedenti.
- Possibilità di utilizzare nel codice C++ alcune funzionalità offerte per QML e Qt Quick. Sarà presentato un nuovo sistema di proprietà per QObject e classi simili. Un motore per la gestione dei binding sarà integrato nel nucleo di Qt, riducendo il carico e il consumo di memoria per i binding, rendendoli accessibili a tutte le parti di Qt, non solo a Qt Quick.
- Espansione del supporto per linguaggi aggiuntivi, come Python e WebAssembly.
Fonte: opennet.ru
