Uitgave van het Qt 5.14-framework en de Qt Creator 4.11.0-ontwikkelomgeving

Na zes maanden ontwikkeling bereid release van een platformonafhankelijk raamwerk Qt 5.14. De broncode voor Qt-componenten is gelicentieerd onder LGPLv3 en GPLv2, Qt-ontwikkelaarstools zoals Qt Creator en qmake, en sommige modules zijn gelicentieerd onder GPLv3. De release van Qt 5.14 markeerde het begin van de voorbereiding van de Qt 6-tak, waarin verwacht belangrijke architectonische veranderingen. Qt 6 staat gepland voor eind volgend jaar, en om de overgang naar de nieuwe branch te vergemakkelijken, is besloten om voorlopige implementaties van enkele innovaties op te nemen in de Qt 5.14 en Qt 5.15 LTS-releases.

De belangrijkste innovaties:

  • Qt Quick is begonnen met het leveren van een grafische API die onafhankelijk is van de 3D API van het besturingssysteem. In Qt 5.14 voorgesteld voorlopige implementatie van een nieuwe engine voor het renderen van scènes met behulp van de nieuwe RHI-laag (Rendering Hardware Interface) om Qt Quick-toepassingen in staat te stellen niet alleen op OpenGL te draaien, zoals tot nu toe het geval was, maar ook met gebruik van Vulkan, Metal en Direct 3D 11. De nieuwe engine wordt momenteel voorgesteld in de vorm van een optie om applicaties voor te bereiden op de overgang naar Qt 6, waarin RHI standaard zal worden gebruikt voor grafische uitvoer.
  • De Qt Quick Timeline-module is geïmplementeerd, waardoor het eenvoudiger wordt om eigenschappen te animeren met behulp van een tijdlijn en keyframes. De module is afgeleid van de Qt Design Studio-ontwikkelomgeving, die een op tijdlijn gebaseerde editor biedt voor het maken van animaties zonder code te schrijven.
  • Experimentele module toegevoegd Qt Snelle 3D, dat een uniforme API biedt voor het maken van gebruikersinterfaces op basis van Qt Quick die grafische 2D- en 3D-elementen combineren. Met de nieuwe API kunt u QML gebruiken om 3D-interface-elementen te definiëren zonder het UIP-formaat te gebruiken. De module lost problemen op zoals grote overhead bij het integreren van QML met inhoud van Qt 3D of 3D Studio, en biedt de mogelijkheid om animaties en transformaties op frameniveau te synchroniseren tussen 2D en 3D. In Qt Quick 3D kunt u één runtime (Qt Quick), één scène-indeling en één animatieframework voor 2D en 3D gebruiken, en Qt Design Studio gebruiken voor de ontwikkeling van visuele interfaces.
  • WheelHandler toegevoegd, een handler voor muiswielgebeurtenissen, evenals gebeurtenissen voor een wiel dat wordt geëmuleerd door een touchpad.
  • Er wordt voortdurend gewerkt aan het verbeteren van de prestaties op schermen met een hoge pixeldichtheid. Inclusief de mogelijkheid om fractionele schaalfactoren te specificeren.
  • De mogelijkheid toegevoegd om kleurruimten voor afbeeldingen toe te voegen, waardoor u een correcte kleurreproductie kunt bereiken bij het weergeven van afbeeldingen op gekalibreerde monitoren.
  • De naamruimte QColorConstants toegevoegd, waarmee u tijdens het compileren exemplaren van de klasse QColor kunt genereren met een vooraf gedefinieerd palet.
  • Ondersteuning voor het lezen en schrijven van Markdown is toegevoegd aan de Qt Widgets en Qt Quick componenten voor het maken van teksteditors.
  • De QCalendar API implementeert de mogelijkheid om met andere dan Gregoriaanse kalenders te werken.
  • Voor Android is ondersteuning toegevoegd voor assemblages die meerdere ABI's omspannen, waardoor u in één keer een applicatie voor verschillende architecturen kunt compileren. Ook is ondersteuning voor het AAB-pakketformaat toegevoegd, waardoor applicaties voor alle ondersteunde architecturen in één archief kunnen worden geleverd.
  • Voerde uit optimalisatie van de prestaties van de Qt 3D-module, inclusief gemoderniseerd werken met threads, framebuffer-objecten en het notificatiesysteem. Als gevolg hiervan was het mogelijk om de belasting van de CPU te verminderen bij het tekenen van een frame en de efficiëntie van de synchronisatie tussen lopende threads te vergroten.
  • API's zijn toegevoegd aan de Qt Network-module voor het configureren van HTTP/2-parameters en het monitoren van de netwerkverbinding.
  • De Qt WebEngine-webengine is bijgewerkt naar Chromium 77 en uitgebreid met een nieuwe API voor het beheren van de levenscyclus van het QWebEnginePage-object.
  • Licentie voor Qt Wayland Compositor, Qt Application Manager en Qt PDF-componenten veranderd van LGPLv3 naar GPLv3, d.w.z. Voor het koppelen met nieuwe releases van deze componenten is nu het openen van de broncode van de programma's onder GPLv3-compatibele licenties of het aanschaffen van een commerciële licentie vereist (LGPLv3 staat koppeling met eigen code toe).

Tegelijkertijd gevormd release van de geïntegreerde ontwikkelomgeving QtCreator 4.11.0, ontworpen voor het maken van platformonafhankelijke applicaties met behulp van de Qt-bibliotheek. Het ondersteunt zowel de ontwikkeling van klassieke programma's in C++ als het gebruik van de QML-taal, waarin JavaScript wordt gebruikt om scripts te definiëren, en de structuur en parameters van interface-elementen worden gespecificeerd door CSS-achtige blokken.

De nieuwe versie van Qt Creator voegt experimentele ondersteuning toe voor het ontwikkelen van applicaties voor microcontrollers en het compileren in WebAssembly met behulp van modules "Qt voor MCU's"En"Qt voor WebAssembly". Voor systemen met
CMake 3.14 en nieuwere versies gebruiken een nieuwe versie voor het opzetten en parseren van projecten bestands-API (/.cmake/api/). Ondersteuning toegevoegd aan de code-editor uitbreiding Language Server-protocol voor het benadrukken van de semantiek, en ook een vereenvoudigde configuratie van de Language Server voor de Python-taal. Er is een optie aan de interface toegevoegd om de markeringsstijl voor het einde van de regel te wijzigen. De mogelijkheid om QML-bindingen te bewerken is toegevoegd aan Qt Quick Designer.

Bron: opennet.ru

Voeg een reactie