The development plan for Qt 6 functionality has been published

Lars Knoll, a KHTML engine creator, head of the Qt Project, and CTO of Qt Company, elmondta discusses plans for creating the next significant branch of the Qt framework. After the completion of the functionality of the Qt 5.14 branch, development will focus on preparing the release of Qt 6, which is expected at the end of 2020.

Qt 6 will develop with an eye towards maintaining compatibility with Qt 5, but some issues may arise since the planned architectural changes and cleanup cannot be implemented without losing a certain level of compatibility. To ease the transition, some features of Qt 6 are planned to be included in a reduced form in the Qt 5.14 and Qt 5.15 LTS releases. Tools will also be prepared to simplify migration to Qt 6.

Among the main goals for the next significant branch is aligning functionality with 2020 requirements, cleaning up the codebase, and simplifying project maintenance. Expected changes:

  • 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.
    • Improved integration with development tools for refactoring and diagnosing errors during compilation;
  • Új absztrakt réteg, a Rendering Hardware Interface (RHI) hozzáadása a különböző grafikus API-k zökkenőmentes használatának biztosítása érdekében, beleértve az OpenGL-t, Vulkan-t, Metal-t és Direct 3D-t (korábban a Qt csak az OpenGL-re volt alapozva). Az RHI-ra lesz átkonvertálva a meglévő renderelő infrastruktúra, beleértve a QPainter-t, a Qt Quick Scenegraph-t és a Qt3D-t. Továbbá tervezzük a Qt Shader Tools modul hozzáadását, amely támogatja a különböző shader fejlesztési nyelveket, és lehetővé teszi a shaderek kereszttársítását mind a build fázisban, mind a program végrehajtása során;
  • Egy egységes API előkészítése a felhasználói felületek létrehozásához, amelyek ötvözik a 2D és 3D grafikai elemeket. Az új API lehetővé teszi a QML használatát a 3D felület elemek meghatározására anélkül, hogy UIP formátumot kellene alkalmazni. Az új felületen a 3D tartalom Qt Quick-be való integrációjának problémáit, mint például a nagy integrációs költségek a QML és a Qt 3D vagy a 3D Studio tartalom között, valamint az animációk és transzformációk szinkronizálásának lehetetlenségét 2D és 3D szinten, kívánják megoldani. A 2D és 3D közötti közös, beágyazott renderelést az új renderelő motor segítségével valósítják meg. Az új Qt Quick 3D támogatással történő előzetes megvalósítása a Qt 5.14 kiadásában várható;
  • Eszközök hozzáadása grafikai erőforrások kezelésére a fordítás során, például PNG képek tömörített textúrákká alakítására, vagy shaderek és mesh-ek optimalizált bináris formátumokra való konvertálására, amelyek a konkrét hardverhez illeszkednek;
  • Egy egységes motor beágyazása a témák és stílusok számára, amely lehetővé teszi a Qt Widgets és Qt Quick alapú alkalmazások megjelenésének elérhetőségét a különböző mobil és asztali platformokhoz;
  • A felhasználói felület létrehozásához szükséges eszközök egységesítése. A funkcionalitás duplikálásának elkerülése és két külön termék szállításának leállítása érdekében a Qt 3D Studio funkcióit várhatóan integrálják a Qt Design Studio-ba, amelynek számos alrendszere és a pluginek csatlakoztatását szolgáló keretrendszer az egységes Qt Creator kódalapból épül.
    A Qt Design Studio-ban a tartalomkészítő csomagok, mint például a Photoshop, Sketch, Illustrator, Maya és 3D Max, minőségi integrációját is tervezik. A fejlesztés egységes eszközkészletének fő támogatott nyelvei között szerepel a C++, QML és Python. Az egységesítés lehetőséget biztosít arra, hogy a Qt Creator-ból hozzáférjünk a felhasználói felület tervezési eszközeihez, és biztosítsuk a felhasználói felület tervezők számára a fejlesztők eszközeiből származó lehetőségeket, például a projekt fordítását vagy az alkalmazás tesztelését a készüléken;
  • 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, leállítva;
  • 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.
  • C++-ban a QML és a Qt Quick számára felajánlott bizonyos funkciók használatának lehetősége. Ide tartozik egy új tulajdonsági rendszer bevezetése a QObject és hasonló osztályok számára. A QML-ból a Qt magjába integrálásra kerül egy binding motor, amely lehetővé teszi a bindingok terhelésének és memóriafogyasztásának csökkentését, és elérhetővé teszi azokat a Qt minden elemében, nem csupán a Qt Quick-ben;
  • A Python és a WebAssembly támogatásának bővítése továbbra is folyamatban van;
  • A termék alapváltozatának méretének csökkentésével és kisebb alkotóelemekre való felbontásával kapcsolatos átszervezés. A fejlesztői eszközök és a speciális komponensek kiegészítőkként lesznek elérhetők, amelyeket egy új bolt katalógusán keresztül terjesztenek. A Qt-hez készített kiegészítők, amelyeket harmadik fél fejlesztett, legyenek azok ingyenesek vagy fizetősek, szintén elfogadásra kerülnek.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster