Alpha-versie van Qt 6.0 beschikbaar

Qt bedrijf kondigde het over het vertalen van de draad Qt 6 naar de alfatestfase. Qt 6 bevat aanzienlijke architectonische veranderingen en vereist een compiler die de C++17-standaard ondersteunt om te bouwen. Uitgave gepland vanaf 1 december 2020.

Toets kenmerken Qt 6:

  • Een geabstraheerde grafische API die onafhankelijk is van de 3D API van het besturingssysteem. Een belangrijk onderdeel van de nieuwe grafische stapel van Qt is de engine voor het renderen van scènes, die de RHI-laag (Rendering Hardware Interface) gebruikt om Qt Quick-toepassingen aan te drijven, niet alleen met OpenGL, maar ook bovenop de Vulkan-, Metal- en Direct 3D-API's.
  • Qt Quick 3D-module met API voor het creëren van gebruikersinterfaces op basis van Qt Quick, waarbij 2D- en 3D grafische elementen worden gecombineerd. Met Qt Quick 3D kunt u QML gebruiken om 3D-interface-elementen te definiëren zonder het UIP-formaat te gebruiken. 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. 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.
  • Het herstructureren van de codebasis in kleinere componenten en het verkleinen van de omvang van het basisproduct. Ontwikkelaarstools en gespecialiseerde componenten worden geleverd als add-ons en worden gedistribueerd via de cataloguswinkel Qt Marktplaats.
  • Aanzienlijke modernisering van QML:
    • Sterke typeondersteuning.
    • Mogelijkheid om QML te compileren in C++-weergave en machinecode.
    • Volledige JavaScript-ondersteuning tot een optie maken (het gebruik van een volledig uitgeruste JavaScript-engine vereist veel bronnen, wat het gebruik van QML op apparatuur zoals microcontrollers verhindert).
    • Weigering van versiebeheer in QML.
    • Unificatie van datastructuren gedupliceerd in QObject en QML (zal het geheugenverbruik verminderen en het opstarten versnellen).
    • Afstappen van het genereren van datastructuren tijdens runtime ten gunste van het genereren tijdens compileren.
    • Interne componenten verbergen door het gebruik van privémethoden en eigenschappen.
    • Verbeterde integratie met ontwikkeltools voor refactoring en foutdiagnose tijdens het compileren.
  • Het toevoegen van tools om grafische elementen tijdens het compileren te verwerken, zoals het converteren van PNG-afbeeldingen naar gecomprimeerde texturen of het converteren van shaders en meshes naar geoptimaliseerde binaire formaten voor specifieke hardware.
  • Het inbedden van een uniforme engine voor thema's en stijlen, waardoor u het uiterlijk kunt bereiken van applicaties gebaseerd op Qt Widgets en Qt Quick, eigen aan verschillende mobiele en desktopplatforms.
  • Er werd besloten om CMake te gebruiken in plaats van QMake als bouwsysteem. Ondersteuning voor het bouwen van applicaties met behulp van QMake blijft bestaan, maar Qt zelf zal worden gebouwd met CMake. Er is voor CMake gekozen omdat deze toolkit veel wordt gebruikt onder C++-projectontwikkelaars en wordt ondersteund in veel geïntegreerde ontwikkelomgevingen. Ontwikkeling van het Qbs-montagesysteem, dat beweerde een vervanging te zijn voor QMake, voortgezet gemeenschap.
  • Overgang naar de C++17-standaard tijdens de ontwikkeling (voorheen werd C++98 gebruikt). Qt 6 is van plan ondersteuning te implementeren voor veel moderne C++-functies, maar zonder achterwaartse compatibiliteit te verliezen met code gebaseerd op oudere standaarden.
  • De mogelijkheid om een ​​deel van de functionaliteit die wordt aangeboden voor QML en Qt Quick te gebruiken in C++-code. Er zal een nieuw eigenschappensysteem voor QObject en soortgelijke klassen worden gepresenteerd. Vanuit QML zal een engine voor het werken met bindingen worden geïntegreerd in de Qt-kern, wat de belasting en het geheugenverbruik voor bindingen zal verminderen en deze beschikbaar zal maken voor alle delen van Qt, en niet alleen voor Qt Quick.
  • Uitgebreide ondersteuning voor extra talen zoals Python en WebAssembly.
  • Bron: opennet.ru

Voeg een reactie