Disponibile la versione Alpha di Qt 6.0

Azienda Qt ha annunciato il sulla traduzione del thread Qt 6 alla fase di test alfa. Qt 6 include modifiche architetturali significative e richiede la creazione di un compilatore che supporti lo standard C++17. Pubblicazione delineato a partire dal 1 dicembre 2020.

Chiave caratteristiche Qt6:

  • Un'API grafica astratta indipendente 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.
  • Modulo Qt Quick 3D con API per la creazione di interfacce utente basate su Qt Quick, combinando elementi grafici 2D e 3D. Qt Quick 3D ti 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.
  • Ristrutturazione della base di codice in componenti più piccoli e riduzione delle dimensioni del prodotto di base. Strumenti per sviluppatori e componenti specializzati verranno forniti come componenti aggiuntivi distribuiti tramite lo store del catalogo Mercato di Qt.
  • Modernizzazione significativa di QML:
    • Forte supporto per la digitazione.
    • Capacità di compilare QML in rappresentazione C++ e codice macchina.
    • Rendere il supporto JavaScript completo un'opzione (l'utilizzo di un motore JavaScript completo richiede molte risorse, il che impedisce l'uso di QML su apparecchiature come i microcontrollori).
    • Rifiuto del controllo delle versioni in QML.
    • Unificazione delle strutture dati duplicate in QObject e QML (ridurrà il consumo di memoria e accelererà l'avvio).
    • Allontanarsi dalla generazione in fase di esecuzione delle strutture dati a favore della generazione in fase di compilazione.
    • Nascondere i componenti interni tramite l'uso di metodi e proprietà privati.
    • Integrazione migliorata con strumenti di sviluppo per il refactoring e la diagnosi degli errori in fase di compilazione.
  • Aggiunta di strumenti per elaborare risorse relative alla grafica in fase di compilazione, come la conversione di immagini PNG in texture compresse o la conversione di shader e mesh in formati binari ottimizzati per hardware specifico.
  • Incorporando un motore unificato per temi e stili, che ti consente di ottenere l'aspetto di applicazioni basate su Qt Widget e Qt Quick, native per diverse piattaforme mobili e desktop.
  • Si è deciso di utilizzare CMake invece di QMake come sistema di compilazione. Il supporto per la creazione di applicazioni utilizzando QMake rimarrà, ma Qt stesso verrà creato utilizzando CMake. È stato scelto CMake perché questo toolkit è ampiamente utilizzato tra gli sviluppatori di progetti C++ ed è supportato in molti ambienti di sviluppo integrati. Sviluppo del sistema di assemblaggio Qbs, che pretendeva di essere un sostituto di QMake, esteso Comunità.
  • Transizione allo standard C++17 durante lo sviluppo (in precedenza veniva utilizzato C++98). Qt 6 prevede di implementare il supporto per molte funzionalità moderne del C++, ma senza perdere la compatibilità con le versioni precedenti del codice basato sugli standard precedenti.
  • La possibilità di utilizzare alcune delle funzionalità offerte per QML e Qt Quick nel codice C++. Verrà presentato anche un nuovo sistema di proprietà per QObject e classi simili. Da QML, un motore per lavorare con i collegamenti sarà integrato nel core Qt, che ridurrà il carico e il consumo di memoria per i collegamenti e li renderà disponibili a tutte le parti di Qt, e non solo a Qt Quick.
  • Supporto esteso per linguaggi aggiuntivi come Python e WebAssembly.
  • Fonte: opennet.ru

Aggiungi un commento