Qt Company a ágáról az alfa-tesztelési szakaszra. A Qt 6 jelentős architekturális változásokat tartalmaz, és a build elkészítéséhez C++17 szabványt támogató fordítóra van szükség. A kiadás 2020. december 1-jén.
Kulcsok Qt 6:
- Absztrakt grafikai API, amely nem függ az operációs rendszer 3D API-jától. Az új Qt grafikai rétege kulcsszereke az a jelenet-renderelő motor, amely RHI (Rendering Hardware Interface) réteg használatával biztosítja, hogy a Qt Quick alkalmazások ne csak OpenGL-lal, hanem a Vulkan, Metal és Direct 3D API-k felett is működhessenek.
- A Qt Quick 3D modul API-t biztosít a Qt Quick alapú felhasználói felületek létrehozásához, 2D és 3D grafikai elemek kombinálásával. A Qt Quick 3D lehetővé teszi a QML használatát a 3D felületi elemek meghatározásához anélkül, hogy a UIP formátumot igénybe kellene venni. A Qt Quick 3D számára a 2D és 3D egy runtime (Qt Quick), egy színpadelrendezés és egy animációs keretrendszer használható, amelynek vizuális fejlesztéséhez a Qt Design Studio alkalmazható. A modul olyan problémákat old meg, mint a QML 3D tartalommal való integrálásának nagy költségei, és lehetővé teszi az animáció és átalakítások keret szintű szinkronizálását 2D és 3D között.
- A kódalap átszervezése kisebb összetevőkre bontással és a fő termék méretének csökkentésével. A fejlesztők számára készült eszközök és speciális összetevők kiegészítők formájában lesznek elérhetők, amelyeket az áruház katalógusán keresztül terjesztenek. .
- Significant modernization of QML:
- Support for strict typing.
- Ability to compile QML into C++ representation and machine code.
- Moving full support for JavaScript to options (using a fully functional JavaScript engine requires significant resources, making QML unsuitable for hardware like microcontrollers).
- Abandoning versioning in QML.
- Unification of data structures that duplicate in QObject and QML (to reduce memory consumption and speed up startup).
- Moving away from generating data structures at runtime in favor of generating at compile time.
- Hiding internal components through the use of private methods and properties.
- Fejlettebb integráció a fejlesztői eszközökkel a refaktorálás és a fordítási hibák diagnosztizálása érdekében.
- Eszközök hozzáadása a grafika erőforrásainak feldolgozásához a fordítási szakaszban, például PNG képek tömörített textúrákká való átalakítására vagy árnyékolók és mesh-ek optimalizált bináris formátumokra való konvertálására a megfelelő hardver számára.
- Egy egységes motor beépítése a témák és stílusok számára, amely lehetővé teszi a Qt Widgets és Qt Quick alapú alkalmazások natív megjelenését különböző mobil és asztali platformokon.
- A build rendszerként a QMake helyett a CMake használata mellett döntöttek. A QMake használatának támogatása megmarad az alkalmazások buildelésénél, de magát a Qt-t a CMake segítségével fogják buildelni. A CMake-t választották, mivel ez az eszköz széles körben elterjedt a C++ projektek fejlesztői között, és számos integrált fejlesztőkörnyezetben támogatott. A Qbs build rendszer fejlesztése is folyamatban van, amely QMake helyettesítőjévé kívánt válni, közösség által.
- A fejlesztés átállása a C++17 szabványra (korábban C++98-at használtak). A Qt 6-ban a C++ sok modern lehetőségének támogatását tervezik, de a régi szabványok alapján készült kódokkal való visszamenőleges kompatibilitás elvesztése nélkül.
- Lehetőség arra, hogy a C++ kódban használhassunk néhány, a QML és a Qt Quick számára kínált funkcionalitást. Ezenkívül egy új tulajdonságkezelő rendszer kerül bemutatásra a QObject és az ehhez hasonló osztályok számára. A Qt magjába integrálásra kerül egy kötések (binding) kezelésére szolgáló motor, ami csökkenti a kötések terhelését és memóriafogyasztását, ezáltal hozzáférhetővé téve azokat a Qt minden részéhez, nem csupán a Qt Quick-hez.
- Támogatás kiterjesztése további nyelvek, például Python és WebAssembly számára.
Forrás: opennet.ru
