Podjetje Qt Company prvi testni izdaek nove veje Qt 6, ki bo prinesla pomembne arhitekturne spremembe, za sestavljanje pa bo potreben prevajalnik, ki podpira standard C++17. Izdaja vključuje le začetni okvir prihodnjega izida Qt 6, ki je bil 1. december 2020. Funkcionalnost v veji Qt 6 se bo širila do razglasitve zamrznitve kode 31. avgusta.
V prvem testnem sklopu so vključeni moduli:
Qt Core,
Qt GUI,
Qt Widgets,
Qt Network,
Qt QML,
Qt Quick,
Qt Quick Controls,
Qt SVG,
Qt Network Authorization,
Qt SQL in
Qt Test.
Ključne Qt 6:
- Apstraktni grafički API, nezavistan od 3D API-ja operativnog sistema. Ključna komponenta novog grafičkog stoga Qt je motor za renderovanje scena, koji koristi sloj RHI (Rendering Hardware Interface) kako bi omogućio rad aplikacija Qt Quick ne samo sa OpenGL, već i preko API-ja Vulkan, Metal i Direct 3D.
- Modul Qt Quick 3D sa API-jem za kreiranje korisničkih interfejsa zasnovanih na Qt Quick, koji kombinuje elemente 2D i 3D grafike. Qt Quick 3D omogućava korišćenje QML-a za definisanje 3D elemenata interfejsa bez angažovanja UIP formata. U Qt Quick 3D moguće je koristiti jedan runtime (Qt Quick), jedan raspored scena i jedan okvir za animaciju, a za vizuelni razvoj interfejsa koristiti Qt Design Studio. Modul rešava probleme poput velikih troškova prilikom integracije QML-a sa sadržajem iz Qt 3D ili 3D Studija, i pruža mogućnost sinhronizacije animacija i transformacija na nivou pojedinačnih frejmova između 2D i 3D.
- Restrukturisanje kodne baze razdvajanjem na manje komponente i smanjenjem veličine osnovnog proizvoda. Alati za programere i specijalizovane komponente biće isporučivani kao dodaci, distribuirani preko kataloga prodavnice .
- Značajna modernizacija QML:
- Podrška za strogu tipizaciju.
- Mogućnost kompilacije QML u C++ prikaz i mašinski kod.
- Prebacivanje potpune podrške za JavaScript u opcije (korišćenje funkcionalnog JavaScript engine-a zahteva velike resurse, što otežava primenu QML na takvim uređajima kao što su mikrokontroleri).
- Odustajanje od verzioniranja u QML.
- Unifikacija struktura podataka, koje se dupliraju u QObject-u i QML (omogućava smanjenje potrošnje memorije i ubrzanje pokretanja).
- Napustiti generisanje struktura podataka tokom izvršenja u korist generisanja tokom kompilacije.
- Skriveni unutrašnji sastojci putem korišćenja privatnih metoda i svojstava.
- Poboljšana integracija sa alatima za razvoj za refaktoring i dijagnostiku grešaka tokom kompilacije.
- Dodavanje alata za obradu grafičkih resursa tokom kompilacije, na primer, za konvertovanje PNG slika u komprimovane teksture ili za konverziju šejdera i mreža u optimizovane binarne formate za specifičan hardver.
- Ugrađivanje jedinstvenog motora za teme i stilove, omogućavajući postizanje izgleda aplikacija zasnovanih na Qt Widgets i Qt Quick, koji je prirodan za različite mobilne i desktop platforme.
- Kot sistem gradnje je odločeno, da se uporabi CMake namesto QMake. Podpora za gradnjo aplikacij s pomočjo QMake bo ohranjena, vendar se bo sam Qt gradil z uporabo CMake. CMake je izbran, ker je to orodje pridobilo široko razširjenost med razvijalci projektov v C++ in je podprto v mnogih integriranih razvojnih okoljih. Razvoj gradbenega sistema Qbs, ki je kandidiral za zamenjavo QMake, zajednicom.
- Prehod pri razvoju na standard C++17 (prej se je uporabljal C++98). V Qt 6 načrtujejo implementacijo podpore mnogim sodobnim funkcionalnostim C++, vendar brez izgube povratne združljivosti s kodo, osnovano na prejšnjih standardih.
- Možnost uporabe nekaterih funkcionalnosti, ponujenih za QML in Qt Quick, v C++ kode. Predstavljena bo nova sistem lastnosti za QObject in podobne razrede. V jedro Qt bo integriran motor za delo z vezmi (binding), kar bo zmanjšalo obremenitev in porabo pomnilnika za vezbe ter omogočilo, da so na voljo vsem delom Qt, ne samo v Qt Quick.
- Širitev podpore za dodatne jezike, kot sta Python in WebAssembly.
Izvor: opennet.ru
