Kompania Qt Company первый тестовый выпуск новой ветки Qt 6, в которой будут предложены значительные архитектурные изменения, а для сборки потребуется компилятор, поддерживающий стандарт C++17. Выпуск включает в себя только начальный каркас будущего релиза Qt 6, который на 1 декабря 2020 года. Функциональность в ветке Qt 6 будет расширяться до объявления заморозки кодовой базы 31 августа.
В состав первой тестовой сборки включены модули:
Qt Core,
Qt GUI,
Qt Widgets,
Qt Network,
Qt QML,
Qt Quick,
Qt Quick Controls,
Qt SVG,
Qt Network Authorization,
Qt SQL и
Qt Test.
Çelësore Qt 6:
- Një API grafike e abstraguar, e pavarur nga API-të 3D të sistemit operativ. Një komponent kyç i grumbullit të ri të grafikës Qt është motori i renditjes së skenës, i cili përdor një ndërfaqe RHI (Rendering Hardware Interface) për të siguruar funksionimin e aplikacioneve Qt Quick jo vetëm me OpenGL, por edhe mbi API-të Vulkan, Metal dhe Direct 3D.
- Moduli Qt Quick 3D me API për krijimin e ndërfaqeve të përdoruesit bazuar në Qt Quick, duke kombinuar elemente të grafikës 2D dhe 3D. Qt Quick 3D lejon përdorimin e QML për të përcaktuar elemente 3D të ndërfaqeve pa përdorur formatin UIP. Në Qt Quick 3D, për 2D dhe 3D mund të përdoret një runtime (Qt Quick), një plan skene dhe një kuadër animacionesh, dhe për zhvillimin vizual të ndërfaqes mund të përdoret Qt Design Studio. Moduli zgjidh probleme si ngarkesat e larta gjatë integrimit të QML me përmbajtjen nga Qt 3D ose 3D Studio, dhe ofron mundësinë e sinkronizimit të animacionit dhe transformimeve në nivelin e кадrovëve të veçantë midis 2D dhe 3D.
- Ristrukturimi i bazës së kodit duke e ndarë atë në përbërës më të vegjël dhe duke reduktuar madhësinë e produktit bazë. Mjetet për zhvilluesit dhe komponentët e specializuar do të ofrohen si shtesa, të shpërndara përmes katalogut të dyqanit. .
- Modernizim i konsiderueshëm i QML:
- Mbështetje e tipizimit të fortë.
- Mundësia për kompilimin e QML në përfaqësim në C++ dhe kodin e makinës.
- Kthimi i mbështetjes së plotë për JavaScript në nivel opsionesh (përdorimi i motorit të plotë JavaScript kërkon burime të mëdha, gjë që pengon aplikimin e QML në pajisje si mikro-kontrollerët).
- Heqja e versionimit në QML.
- Unifikimi i strukturave të dhënash, që përsëriten në QObject dhe QML (do të lejojë reduktimin e konsumit të memories dhe përshpejtimin e ngarkesës).
- Shkëputja nga gjenerimi i strukturave të dhënash në kohën e ekzekutimit në favor të gjenerimit gjatë kompilimit.
- Fshehja e komponentëve të brendshëm përmes përdorimit të metodave dhe pronave private.
- Integrim i përmirësuar me mjetet e zhvillimit për ristrukturim dhe diagnostikim gabimesh gjatë kompilimit.
- Shtimi i mjeteve për përpunimin e burimeve lidhur me grafikën gjatë fazës së kompilimitt, për shembull, për transformimin e imazheve PNG nëtekstura të kompresuara ose për konvertimin e shaderëve dhe mesh-eve në formate binarë të optimizuar për pajisje të veçanta.
- Integrimi i një motori të unifikuar për tema dhe stile, i cili lejon arritjen e dukjes së aplikacioneve të bazuara në Qt Widgets dhe Qt Quick, natyrale për platformat e ndryshme mobile dhe desktop.
- Si sistem ndërtimi është vendosur të përdoret CMake në vend të QMake. Mbështetjeja për ndërtimin e aplikacioneve me QMake do të ruhet, por vetë Qt do të ndërtohet me përdorimin e CMake. CMake është zgjedhur për shkak se ky mjete ka fituar përhapje të madhe në mes të zhvilluesve të projekteve në C++ dhe mbështetet në shumë ambiente të integruara zhvillimi. Zhvillimi i sistemit të ndërtimit Qbs, i cili pretendonte të ishte zëvendësimi i QMake, nga komuniteti.
- Kalimi në zhvillim në standardin C++17 (më parë ishte përdorur C++98). Në Qt 6 planifikohet implementimi i mbështetjes për shumë mundësi moderne të C++, por pa humbur përputhshmërinë me kodin në bazë të standardeve të kaluar.
- Mundësia e përdorimit në kodin në C++ të disa funksionaliteteve që ofrohen për QML dhe Qt Quick. Përfshirë një sistem të ri pronash për QObject dhe klasa të ngjashme. Nga QML në thelbin e Qt do të integrohet një motor për funksionimin me lidhjet (binding), gjë që do të lejojë reduktimin e ngarkesës dhe konsumit të memories për lidhjet dhe do t'i bëjë ato të disponueshme për të gjitha pjesët e Qt, jo vetëm për Qt Quick.
- Zgjerimi i mbështetjes për gjuhë të tjera, si Python dhe WebAssembly.
Burimi: opennet.ru
