Společnost Qt Company o překladu větve přešla do fáze alfa-testování. Qt 6 obsahuje významné architektonické změny a pro sestavení je potřeba překladač, který podporuje standard C++17. Uvolnění je naplánováno na 1. prosince 2020.
Klíčové Qt 6:
- Abstraktní grafické API, které není závislé na 3D API operačního systému. Klíčovým prvkem nového grafického stacku Qt je engine pro vykreslování scén, který používá vrstvu RHI (Rendering Hardware Interface), aby aplikace Qt Quick fungovaly nejen s OpenGL, ale také nad API Vulkan, Metal a Direct 3D.
- Modul Qt Quick 3D s API pro vytváření uživatelských rozhraní na základě Qt Quick, kombinující prvky 2D a 3D grafiky. Qt Quick 3D umožňuje používat QML pro definici 3D prvků rozhraní bez využití formátu UIP. V Qt Quick 3D je možné použít jeden runtime (Qt Quick), jeden scény layout a jeden animační framework, a pro vizuální vývoj rozhraní používat Qt Design Studio. Modul řeší problémy jako vysoké náklady na integraci QML s obsahem z Qt 3D nebo 3D Studio a umožňuje synchronizaci animace a transformací na úrovni jednotlivých snímků mezi 2D a 3D.
- Restrukturalizace kódu na menší komponenty a zmenšení velikosti základního produktu. Nástroje pro vývojáře a specializované komponenty budou dodávány jako doplňky dostupné v katalogu obchodu .
- Zásadní modernizace QML:
- Podpora přísné typizace.
- Možnost kompilace QML do zobrazení v C++ a strojovém kódu.
- Převod plné podpory JavaScriptu na volitelnou (používání plně funkčního JavaScriptového enginu vyžaduje vysoké zdroje, což brání používání QML na zařízeních jako jsou mikrořadiče).
- Zrušení verzování v QML.
- Unifikace datových struktur, které se duplikují v QObject a QML (což povede ke snížení spotřeby paměti a zrychlení spuštění).
- Odešel od generování datových struktur za běhu ve prospěch generování během kompilace.
- Skrytí vnitřních komponentů prostřednictvím používání soukromých metod a vlastností.
- Zlepšená integrace s vývojovými nástroji pro refaktoring a diagnostiku chyb při kompilaci.
- Přidání nástrojů pro zpracování souvisejících grafických zdrojů v době kompilace, například pro převod PNG obrázků na komprimované textury nebo pro konverzi shaderů a modelů do optimalizovaných binárních formátů pro konkrétní hardware.
- Vestavění unifikovaného motoru pro témata a styly, umožňující dosažení vzhledu aplikací založených na Qt Widgets a Qt Quick, nativního pro různá mobilní a desktopová zařízení.
- Jako systém pro sestavení bylo rozhodnuto použít CMake místo QMake. Podpora sestavení aplikací pomocí QMake zůstane, ale samotné Qt bude sestaveno s využitím CMake. CMake byl vybrán, protože tento nástroj získal široké přijetí mezi vývojáři projektů v C++ a je podporován v mnoha integrovaných vývojových prostředích. Vývoj systému sestavení Qbs, který měl nahradit QMake, komunitou.
- Přechod na standard C++17 (předtím byl použit C++98). V Qt 6 je plánována podpora mnoha moderních funkcí C++, ale bez ztráty zpětné kompatibility s kódem založeným na dřívějších standardech.
- Možnost využití některých funkcí nabízených pro QML a Qt Quick v kódu C++. Zahrnuta bude nová systém vlastností pro QObject a podobné třídy. Z QML do jádra Qt bude integrován motor pro správu vazeb (binding), což sníží zatížení a spotřebu paměti pro vazby a zpřístupní je všem částem Qt, ne pouze pro Qt Quick.
- Rozšíření podpory dalších jazyků, jako jsou Python a WebAssembly.
Zdroj: opennet.ru
