Qt Company over de vertaling van tak naar de alfa-testfase. Qt 6 bevat aanzienlijke architectonische wijzigingen en vereist een compiler die de C++17-standaard ondersteunt. De release op 1 december 2020.
Belangrijkste Qt 6:
- Een geabstraheerde grafische API die niet afhankelijk is van de 3D API van het besturingssysteem. Een essentieel onderdeel van de nieuwe grafische stack van Qt is de render-engine die een laag RHI (Rendering Hardware Interface) gebruikt om ervoor te zorgen dat Qt Quick-applicaties niet alleen met OpenGL, maar ook met de API's Vulkan, Metal en Direct 3D werken.
- De Qt Quick 3D-module met API voor het maken van gebruikersinterfaces gebaseerd op Qt Quick, die 2D en 3D grafische elementen combineert. Qt Quick 3D maakt het mogelijk om QML te gebruiken voor het definiëren van 3D-elementen in interfaces zonder het UIP-formaat te gebruiken. In Qt Quick 3D kunnen voor 2D en 3D één runtime (Qt Quick), één scene-indeling en één animatieworkflow worden gebruikt, en voor de visuele ontwikkeling van de interface kan Qt Design Studio worden toegepast. De module lost problemen op zoals hoge overheadkosten bij het integreren van QML met content uit Qt 3D of 3D Studio en biedt de mogelijkheid om animatie en transformaties op frame-niveau tussen 2D en 3D te synchroniseren.
- Hernieuwing van de codebasis door deze op te splitsen in kleinere componenten en de grootte van het basproduct te verkleinen. Hulpmiddelen voor ontwikkelaars en gespecialiseerde componenten worden geleverd als extensies die via een catalogus-winkel worden verspreid. .
- Substantiële modernisering van QML:
- Ondersteuning voor strikte typevorming.
- De mogelijkheid om QML te compileren naar C++-representatie en machinecode.
- Overgang van volledige ondersteuning van JavaScript naar opties (het gebruik van een volledig functionele JavaScript-engine vereist veel middelen, wat het gebruik van QML op apparatuur zoals microcontrollers belemmert).
- Afzien van versiebeheer in QML.
- Uniformering van datastructuren die in QObject en QML worden herhaald (verlaagt het geheugengebruik en versnelt de opstart).
- Overstap van het genereren van datastructuren tijdens runtime naar generatie tijdens compilatie.
- Verbergen van interne componenten door gebruik te maken van privé methoden en eigenschappen.
- Verbeterde integratie met ontwikkeltools voor refactoring en foutdiagnose tijdens de compilatie.
- Toevoeging van tools voor het verwerken van grafisch gerelateerde resources in de compilatiefase, bijvoorbeeld voor het omzetten van PNG-afbeeldingen naar gecomprimeerde textures of voor het converteren van shaders en meshes naar geoptimaliseerde binaire formaten voor specifieke hardware.
- Integratie van een uniforme engine voor thema's en stijlen die de uitstraling van applicaties op basis van Qt Widgets en Qt Quick native maakt voor verschillende mobiele en desktopplatformen.
- CMake has been selected as the build system instead of QMake. Support for building applications using QMake will be retained, but Qt itself will be built using CMake. CMake was chosen because this tool has gained wide distribution among developers of C++ projects and is supported in many integrated development environments. The development of the Qbs build system, which aimed to replace QMake, door de gemeenschap.
- Transitioning to the C++17 standard for development (previously C++98 was used). In Qt 6, there are plans to implement support for many modern features of C++, while maintaining backward compatibility with code based on previous standards.
- De mogelijkheid om bepaalde functionaliteiten aangeboden voor QML en Qt Quick in C++ code te gebruiken. Ook zal er een nieuw systeem van eigenschappen voor QObject en vergelijkbare klassen worden geïntroduceerd. Een engine voor bindings wordt geïntegreerd van QML naar de Qt-kern, wat de belasting en het geheugenverbruik van bindings zal verminderen en deze toegankelijk zal maken voor alle delen van Qt, niet alleen voor Qt Quick.
- Uitbreiding van de ondersteuning voor aanvullende talen, zoals Python en WebAssembly.
Bron: opennet.ru
