Qt 6 funktionalitet fÀrdplan publicerad

Lars Knoll, skapare av KHTML-motorn, projektledare för Qt-projektet och CTO för Qt Company, jag sa om planer för nÀsta större gren av Qt-ramverket. NÀr funktionaliteten i Qt 5.14-grenen Àr klar kommer utvecklingen att fokusera pÄ att förbereda lanseringen av Qt 6, som förvÀntas i slutet av 2020.

Qt 6 kommer att utvecklas med sikte pÄ att sÀkerstÀlla kompatibilitet med Qt 5, men individuella problem kan inte uteslutas, eftersom de planerade arkitekturförÀndringarna och rensningen inte kommer att vara möjliga att implementera utan att en viss nivÄ av kompatibilitet förloras. För att underlÀtta övergÄngen planeras vissa Qt 6-funktioner att inkluderas i reducerad form i Qt 5.14 och Qt 5.15 LTS-utgÄvorna. En verktygslÄda kommer ocksÄ att förberedas för att förenkla migreringen till Qt 6.

Viktiga mÄl för nÀsta stora gren inkluderar att anpassa funktionaliteten till 2020 Ärs krav, stÀda upp kodbasen och göra projektet lÀttare att underhÄlla. FörvÀntade Àndringar:

  • Betydande modernisering av QML:
    • Starkt skrivstöd.
    • Möjlighet att kompilera QML till C++ representation och maskinkod.
    • Att göra fullt JavaScript-stöd till ett alternativ (att anvĂ€nda en fullfjĂ€drad JavaScript-motor krĂ€ver mycket resurser, vilket förhindrar anvĂ€ndningen av QML pĂ„ utrustning som mikrokontroller).
    • Avslag pĂ„ versionshantering i QML.
    • Enhet av datastrukturer duplicerade i QObject och QML (kommer att minska minnesförbrukningen och pĂ„skynda uppstarten).
    • Att gĂ„ bort frĂ„n runtimegenerering av datastrukturer till förmĂ„n för kompileringsgenerering.
    • Dölja interna komponenter genom anvĂ€ndning av privata metoder och egenskaper.
    • FörbĂ€ttrad integration med utvecklingsverktyg för refactoring och feldiagnostik vid kompilering;
  • TillĂ€gg av ett nytt abstrakt lager Rendering Hardware Interface (RHI) för att sĂ€kerstĂ€lla sömlös anvĂ€ndning av olika grafik-API:er, inklusive OpenGL, Vulkan, Metal och Direct 3D (tidigare var Qt endast kopplat till OpenGL). All befintlig renderingsinfrastruktur kommer att överföras för att anvĂ€nda RHI, inklusive QPainter, Qt Quick Scenegraph och Qt3D. Det Ă€r ocksĂ„ planerat att lĂ€gga till Qt Shader Tools-modulen för att stödja olika shaderutvecklingssprĂ„k och sĂ€kerstĂ€lla korskompilering av shaders bĂ„de i byggfasen och under programkörning.
  • Förbereder ett enhetligt API för att skapa anvĂ€ndargrĂ€nssnitt som kombinerar 2D- och 3D-grafikelement. Det nya API:et kommer att tillĂ„ta anvĂ€ndning av QML för att definiera 3D-grĂ€nssnittselement utan att anvĂ€nda UIP-formatet. Det nya grĂ€nssnittet för att integrera 3D-innehĂ„ll med Qt Quick Ă€r planerat att Ă„tgĂ€rda problem som den stora kostnaden för att integrera QML med innehĂ„ll frĂ„n Qt 3D eller 3D Studio, och oförmĂ„gan att synkronisera animationer och transformationer pĂ„ bildnivĂ„ mellan 2D och 3D. Kapslad rendering av 2D och 3D kommer att implementeras med en ny renderingsmotor. En preliminĂ€r implementering av det nya Qt Quick med 3D-stöd förvĂ€ntas i utgĂ„van av Qt 5.14;
  • LĂ€gga till verktyg för att bearbeta grafikrelaterade resurser vid kompileringstid, till exempel konvertera PNG-bilder till komprimerade texturer eller konvertera shaders och meshes till hĂ„rdvaruoptimerade binĂ€ra format;
  • BĂ€dda in ett enhetligt tema och en stilmotor som gör att Qt Widgets och Qt Quick-baserade applikationer kan se inbyggda ut pĂ„ flera mobila och stationĂ€ra plattformar;
  • Enhetlig verktyg för att skapa anvĂ€ndargrĂ€nssnitt. För att undvika dubbelarbete och sluta leverera tvĂ„ separata produkter förvĂ€ntas Qt 3D Studio-funktionaliteten integreras i Qt Design Studio, vars mĂ„nga delsystem och ramverk för plugin-anslutningar Ă€r byggda pĂ„ samma kodbas som Qt Creator.
    Qt Design Studio planerar ocksÄ att tillhandahÄlla högkvalitativ integration med innehÄllsskapande program som Photoshop, Sketch, Illustrator, Maya och 3D Max. De huvudsakliga sprÄken som stöds i den enhetliga utvecklingsverktygslÄdan Àr C++, QML och Python. Unifiering innebÀr ocksÄ möjligheten att komma Ät grÀnssnittsdesignverktyg frÄn Qt Creator och ge grÀnssnittsdesigners funktionerna hos utvecklarverktyg, till exempel att kompilera ett projekt eller testa en applikation pÄ en enhet;
  • Man beslutade att anvĂ€nda CMake istĂ€llet för QMake som byggsystem. Stöd för att bygga applikationer med QMake kommer att behĂ„llas, men Qt i sig kommer att byggas med CMake. CMake valdes eftersom denna verktygslĂ„da har blivit flitigt anvĂ€nd bland C++-projektutvecklare och stöds i mĂ„nga integrerade utvecklingsmiljöer. Utveckling av Qbs byggsystem, som pĂ„stods vara en ersĂ€ttning för QMake, upphört;
  • ÖvergĂ„ng till C++17-standarden under utveckling (tidigare anvĂ€ndes C++98). Qt 6 planerar att implementera stöd för mĂ„nga moderna C++-funktioner, men utan att förlora bakĂ„tkompatibilitet med kod baserad pĂ„ tidigare standarder.
  • Möjlighet att anvĂ€nda en del av funktionaliteten som erbjuds för QML och Qt Quick frĂ„n C++. Detta inkluderar ett nytt egenskapssystem för QObject och liknande klasser. En bindningsmotor kommer att integreras frĂ„n QML i Qt-kĂ€rnan, vilket kommer att minska belastningen och minnesförbrukningen för bindningar och göra dem tillgĂ€ngliga för alla delar av Qt, inte bara Qt Quick;
  • Fortsatt arbete med att utöka stödet för ytterligare sprĂ„k som Python och WebAssembly;
  • Omstrukturering till mindre komponenter och en mindre basprodukt. Utvecklarverktyg och specialiserade komponenter kommer att levereras som tillĂ€gg distribuerade via en ny katalogbutik. Qt-tillĂ€gg frĂ„n tredje part, bĂ„de gratis och betalda, kommer ocksĂ„ att accepteras för distribution.

KĂ€lla: opennet.ru

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster