U publikua udhërrëfyesi i funksionalitetit Qt 6

Lars Knoll, krijues i motorit KHTML, menaxher i projektit të Projektit Qt dhe drejtor teknik i kompanisë Qt, unë i thashë në lidhje me planet për të krijuar degën tjetër të rëndësishme të kornizës Qt. Pasi të përfundojë funksionaliteti i degës Qt 5.14, zhvillimi do të fokusohet në përgatitjen për lëshimin e Qt 6, i cili pritet në fund të vitit 2020.

Qt 6 do të zhvillohet me synimin për të siguruar përputhshmërinë me Qt 5, por mund të lindin probleme individuale, pasi ndryshimet dhe pastrimet e planifikuara arkitekturore nuk do të jenë të mundshme të zbatohen pa humbur një nivel të caktuar përputhshmërie. Për të qetësuar tranzicionin, disa veçori të Qt 6 janë planifikuar të përfshihen në një formë të reduktuar si pjesë e lëshimeve të Qt 5.14 dhe Qt 5.15 LTS. Toolkit do të përgatitet gjithashtu për të thjeshtuar migrimin në Qt 6.

Ndër synimet kryesore për degën e radhës të rëndësishme janë përshtatja e funksionalitetit me kërkesat e vitit 2020, pastrimi i bazës së kodit dhe thjeshtimi i mirëmbajtjes së projektit. Ndryshimet e pritshme:

  • Modernizimi i rëndësishëm i QML:
    • Mbështetje e fortë për të shkruar.
    • Aftësia për të përpiluar QML në përfaqësimin C++ dhe kodin e makinës.
    • Bërja e mbështetjes së plotë të JavaScript-it një opsion (përdorimi i një motori JavaScript me funksione të plota kërkon shumë burime, gjë që parandalon përdorimin e QML në pajisje të tilla si mikrokontrolluesit).
    • Refuzimi i versionimit në QML.
    • Unifikimi i strukturave të të dhënave të dyfishuara në QObject dhe QML (do të reduktojë konsumin e memories dhe do të përshpejtojë fillimin).
    • Largimi nga gjenerimi në kohë i strukturave të të dhënave në favor të gjenerimit në kohë të përpilimit.
    • Fshehja e komponentëve të brendshëm përmes përdorimit të metodave dhe vetive private.
    • Integrim i përmirësuar me mjetet e zhvillimit për rifaktorimin dhe diagnostikimin e gabimeve në kohën e përpilimit;
  • Shtimi i një shtrese të re abstrakte, Ndërfaqja e Hardware Rendering (RHI), për të ofruar përdorim pa probleme të API-ve të ndryshme grafike, duke përfshirë OpenGL, Vulkan, Metal dhe Direct 3D (më parë Qt ishte vetëm OpenGL). E gjithë infrastruktura ekzistuese e paraqitjes do të konvertohet për të përdorur RHI, duke përfshirë QPainter, Qt Quick Scenegraph dhe Qt3D. Është planifikuar gjithashtu të shtohet moduli Qt Shader Tools për të mbështetur gjuhë të ndryshme të zhvillimit të shader-it dhe për të ofruar ndërthurje të shaderëve si në fazën e ndërtimit ashtu edhe në kohën e ekzekutimit;
  • Përgatitja e një API të unifikuar për krijimin e ndërfaqeve të përdoruesit që kombinojnë elementë grafikë 2D dhe 3D. API i ri do t'ju lejojë të përdorni QML për të përcaktuar elementët e ndërfaqes 3D pa përdorur formatin UIP. Ndërfaqja e re për integrimin e përmbajtjes 3D me Qt Quick planifikon të zgjidhë probleme të tilla si shpenzimet e larta të integrimit të QML me përmbajtje nga Qt 3D ose 3D Studio, dhe pamundësia për të sinkronizuar animacionet dhe transformimet në nivel kornizash midis 2D dhe 3D. Renderimi i kombinuar i mbivendosur 2D dhe 3D do të zbatohet duke përdorur një motor të ri renderimi. Një pamje paraprake e Qt Quick të re me mbështetje 3D pritet në versionin Qt 5.14;
  • Shtimi i mjeteve për të përpunuar asetet e lidhura me grafikë në kohën e kompilimit, të tilla si konvertimi i imazheve PNG në tekstura të ngjeshur ose konvertimi i shaderave dhe rrjetave në formate binare të optimizuara për pajisje specifike;
  • Përfshirja e një motori të unifikuar për temat dhe stilet, duke ju lejuar të arrini pamjen e aplikacioneve të bazuara në Qt Widgets dhe Qt Quick, vendas në platforma të ndryshme celulare dhe desktop;
  • Unifikimi i mjeteve për krijimin e një ndërfaqeje përdoruesi. Për të shmangur dyfishimin e funksionalitetit dhe ndërprerjen e shpërndarjes së dy produkteve të veçanta, pritet që funksionaliteti i Qt 3D Studio të integrohet në Qt Design Studio, shumë prej nënsistemeve të të cilit dhe korniza për lidhjen e shtojcave janë ndërtuar në të njëjtën bazë kodi si Krijuesi i Qt.
    Qt Design Studio planifikon gjithashtu të sigurojë integrim me cilësi të lartë me paketat e krijimit të përmbajtjes si Photoshop, Sketch, Illustrator, Maya dhe 3D Max. Gjuhët kryesore të mbështetura në veglat e unifikuara të zhvillimit janë C++, QML dhe Python. Unifikimi nënkupton gjithashtu aftësinë për të hyrë në mjetet e dizajnit të ndërfaqes nga Qt Creator dhe për t'u ofruar dizajnerëve të ndërfaqes aftësi nga mjetet e zhvilluesve, për shembull, përpilimi i një projekti ose testimi i një aplikacioni në një pajisje;

  • U vendos që të përdoret CMake në vend të QMake si sistem ndërtimi. Mbështetja për ndërtimin e aplikacioneve duke përdorur QMake do të mbetet, por vetë Qt do të ndërtohet duke përdorur CMake. CMake u zgjodh sepse kjo paketë veglash përdoret gjerësisht midis zhvilluesve të projektit C++ dhe mbështetet në shumë mjedise të integruara zhvillimi. Zhvillimi i sistemit të montimit Qbs, i cili pretendonte të ishte një zëvendësim për QMake, ndërprerë;
  • Kalimi në standardin C++17 gjatë zhvillimit (më parë përdorej C++98). Qt 6 planifikon të zbatojë mbështetje për shumë veçori moderne të C++, por pa humbur përputhshmërinë e prapambetur me kodin e bazuar në standardet e trashëgimisë.
  • Aftësia për të përdorur nga C++ disa nga funksionalitetet e ofruara për QML dhe Qt Quick. Në veçanti, do të prezantohet një sistem i ri pronash për QObject dhe klasa të ngjashme. Një motor për të punuar me lidhjet do të integrohet nga QML në bërthamën Qt, i cili do të reduktojë ngarkesën dhe konsumin e memories për lidhjet dhe do t'i bëjë ato të disponueshme për të gjitha pjesët e Qt, dhe jo vetëm për Qt Quick;
  • Vazhdimi i punës për të zgjeruar mbështetjen për gjuhë të tjera si Python dhe WebAssembly;
  • Ristrukturimi duke u zbërthyer në komponentë më të vegjël dhe duke zvogëluar madhësinë e produktit bazë. Mjetet e zhvilluesit dhe komponentët e personalizuar do të ofrohen si shtesa të shpërndara përmes dyqanit të ri të katalogut. Shtesat në Qt nga zhvilluesit e palëve të treta, falas dhe me pagesë, do të pranohen gjithashtu për shpërndarje.

Burimi: opennet.ru

Shto një koment