Qt 6 funksionaliteit padkaart gepubliseer

Lars Knoll, skepper van die KHTML-enjin, projekbestuurder van die Qt-projek en tegniese direkteur van die Qt Company, Ek het vir oor planne om die volgende belangrike tak van die Qt-raamwerk te skep. Sodra die funksionaliteit van die Qt 5.14-tak voltooi is, sal ontwikkeling fokus op voorbereiding vir die vrystelling van Qt 6, wat aan die einde van 2020 verwag word.

Qt 6 sal ontwikkel word met die oog daarop om versoenbaarheid met Qt 5 te verseker, maar individuele probleme kan ontstaan, aangesien die beplande argitektoniese veranderinge en opruimings nie moontlik sal wees om te implementeer sonder om 'n sekere vlak van verenigbaarheid te verloor nie. Om die oorgang glad te maak, word beplan om sommige kenmerke van Qt 6 in 'n verminderde vorm ingesluit te word as deel van die Qt 5.14- en Qt 5.15 LTS-vrystellings. Toolkit sal ook voorberei word om migrasie na Qt 6 te vereenvoudig.

Van die hoofdoelwitte vir die volgende belangrike tak is om die funksionaliteit in lyn te bring met die vereistes van 2020, die skoonmaak van die kodebasis en die vereenvoudiging van projekinstandhouding. Verwagte veranderinge:

  • Beduidende modernisering van QML:
    • Sterk tikondersteuning.
    • Vermoë om QML saam te stel in C++ voorstelling en masjienkode.
    • Om volledige JavaScript-ondersteuning 'n opsie te maak (om 'n volledige JavaScript-enjin te gebruik, verg baie hulpbronne, wat die gebruik van QML op toerusting soos mikrobeheerders verhoed).
    • Weiering van weergawe in QML.
    • Eenwording van datastrukture gedupliseer in QObject en QML (sal geheueverbruik verminder en opstart bespoedig).
    • Wegbeweeg van run-time generering van datastrukture ten gunste van samestelling-tyd generering.
    • Versteek interne komponente deur die gebruik van private metodes en eienskappe.
    • Verbeterde integrasie met ontwikkelingsinstrumente vir herfaktorering en samestelling-tyd foutdiagnose;
  • Die byvoeging van 'n nuwe abstrakte laag, die Rendering Hardware Interface (RHI), om naatlose gebruik van verskeie grafiese API's te bied, insluitend OpenGL, Vulkan, Metal en Direct 3D (voorheen was Qt slegs OpenGL). Alle bestaande weergawe-infrastruktuur sal omgeskakel word om RHI te gebruik, insluitend QPainter, Qt Quick Scenegraph en Qt3D. Daar word ook beplan om die Qt Shader Tools-module by te voeg om verskeie shader-ontwikkelingstale te ondersteun en kruissamestelling van shaders te bied, beide op die boustadium en tydens looptyd;
  • Voorbereiding van 'n verenigde API vir die skep van gebruikerskoppelvlakke wat 2D- en 3D-grafiese elemente kombineer. Die nuwe API sal jou toelaat om QML te gebruik om 3D-koppelvlakelemente te definieer sonder om die UIP-formaat te gebruik. Die nuwe koppelvlak vir die integrasie van 3D-inhoud met Qt Quick beplan om probleme op te los soos die hoë bokoste van die integrasie van QML met inhoud van Qt 3D of 3D Studio, en die onvermoë om animasies en raamvlaktransformasies tussen 2D en 3D te sinchroniseer. Gekombineerde geneste 2D- en 3D-weergawe sal met behulp van 'n nuwe weergawe-enjin geïmplementeer word. 'n Voorskou van die nuwe Qt Quick met 3D-ondersteuning word in die Qt 5.14-weergawe verwag;
  • Voeg gereedskap by om grafiese verwante bates te verwerk tydens samestelling, soos die omskakeling van PNG-beelde in saamgeperste teksture of die omskakeling van shaders en maas in geoptimaliseerde binêre formate vir spesifieke hardeware;
  • Inbedding van 'n verenigde enjin vir temas en style, sodat jy die voorkoms van toepassings kan verkry wat gebaseer is op Qt Widgets en Qt Quick, inheems aan verskillende mobiele en rekenaarplatforms;
  • Eenwording van gereedskap vir die skep van 'n gebruikerskoppelvlak. Om duplisering van funksionaliteit en staking van aflewering van twee afsonderlike produkte te vermy, word verwag dat die funksionaliteit van Qt 3D Studio geïntegreer sal word in Qt Design Studio, waarvan baie substelsels en die raamwerk vir die koppeling van inproppe op dieselfde kodebasis gebou is as Qt Skepper.
    Qt Design Studio beplan ook om hoëgehalte-integrasie met inhoudskeppingspakkette soos Photoshop, Sketch, Illustrator, Maya en 3D Max te verskaf. Die hooftale wat in die verenigde ontwikkelingshulpmiddelstel ondersteun word, is C++, QML en Python. Unifikasie beteken ook die vermoë om toegang te verkry tot koppelvlakontwerpinstrumente van Qt Creator, en koppelvlakontwerpers te voorsien van vermoëns van ontwikkelaarnutsgoed, byvoorbeeld om 'n projek saam te stel of 'n toepassing op 'n toestel te toets;

  • Daar is besluit om CMake in plaas van QMake as die boustelsel te gebruik. Ondersteuning vir die bou van toepassings met QMake sal behoue ​​bly, maar Qt self sal met CMake gebou word. CMake is gekies omdat hierdie gereedskapstel wyd gebruik word onder C++-projekontwikkelaars en in baie geïntegreerde ontwikkelingsomgewings ondersteun word. Ontwikkeling van die Qbs-samestellingstelsel, wat beweer het dat dit 'n plaasvervanger vir QMake is, beëindig;
  • Oorgang na die C++17-standaard tydens ontwikkeling (voorheen is C++98 gebruik). Qt 6 beplan om ondersteuning vir baie moderne C++-kenmerke te implementeer, maar sonder om terugwaartse versoenbaarheid te verloor met kode gebaseer op verouderde standaarde.
  • Vermoë om van C++ sommige van die funksies wat vir QML en Qt Quick aangebied word, te gebruik. In die besonder sal 'n nuwe eiendomstelsel vir QObject en soortgelyke klasse aangebied word. 'n Enjin om met bindings te werk, sal vanaf QML in die Qt-kern geïntegreer word, wat die las en geheueverbruik vir bindings sal verminder en dit aan alle dele van Qt beskikbaar sal stel, en nie net Qt Quick nie;
  • Voortgesette werk om ondersteuning vir bykomende tale soos Python en WebAssembly uit te brei;
  • Herstrukturering deur af te breek in kleiner komponente en die grootte van die onderliggende produk te verklein. Ontwikkelaarnutsgoed en pasgemaakte komponente sal verskaf word as byvoegings wat deur die nuwe kataloguswinkel versprei word. Byvoegings tot Qt van derdeparty-ontwikkelaars, beide gratis en betaalde, sal ook vir verspreiding aanvaar word.

Bron: opennet.ru

Voeg 'n opmerking