De Qt Company heeft de release van het Qt 6.4-framework gepubliceerd, waarin de focus voortgezet is op stabilisatie en uitbreiding van de functionaliteit van de Qt 6-serie. Qt 6.4 ondersteunt de platforms Windows 10+, macOS 10.15+, Linux (Ubuntu 20.04, CentOS 8.2, openSUSE 15.3, SUSE 15 SP2), iOS 14+, Android 6+ (API 23+), webOS, WebAssembly, INTEGRITY en QNX. De broncode van de Qt-componenten wordt geleverd onder de LGPLv3- en GPLv2-licenties.
Belangrijkste wijzigingen in Qt 6.4:
- Volledige ondersteuning voor het WebAssembly-platform is geïmplementeerd, waardoor Qt-toepassingen kunnen worden gemaakt die in web-browsers draaien en tussen verschillende hardwareplatforms kunnen worden overgezet. Toepassingen die voor het WebAssembly-platform zijn opgebouwd, hebben dankzij JIT-compilatie een almost native prestatie, kunnen gebruik maken van Qt Quick, Qt Quick 3D en beschikbare visualisatiehulpmiddelen in Qt. Aangezien de WebAssembly-applicatie in een geïsoleerde omgeving van de browser draait, is de toegang tot bepaalde API's voor het werken met lokale bronnen en services van de besturingssysteem beperkt, maar er worden extra API's aangeboden voor integratie met de browser.
- De Qt TextToSpeech-module, die eerder in Qt 5 beschikbaar was maar niet in de Qt 6-serie is opgenomen, is teruggeplaatst in de hoofdset. Deze module biedt middelen voor spraaksyntese, wat kan worden gebruikt om de toegankelijkheid van toepassingen voor mensen met een beperking te verbeteren of om nieuwe middelen voor het op de achtergrond informeren van de gebruiker te realiseren, bijvoorbeeld voor het weergeven van meldingen in apps voor auto-informatiesystemen. In Linux gebeurt tekst-naar-spraak omzetting met de Speech Dispatcher-bibliotheek (libspeechd), en op andere platforms via de standaard API van het besturingssysteem.
- Een experimentele module met een iOS-stijling voor Qt Quick is toegevoegd. Apps op basis van Qt Quick Controls kunnen deze module automatisch gebruiken om een native interface stijl op het iOS-platform te creëren, vergelijkbaar met hoe de native stijl wordt toegepast op Windows, macOS en Android.


- Een experimentele module QtHttpServer is toegevoegd, die het mogelijk maakt om HTTP-serverfunctionaliteit in applicaties te integreren, waarbij HTTP/1.1, TLS/HTTPS, WebSockets, foutverwerking, routering van aanvragen op basis van URL-parameters (QHttpServerRouter) en REST API wordt ondersteund.
- Een experimentele module Qt Quick 3D Physics is toegevoegd, die een API biedt voor de simulatie van fysieke processen en die kan worden gebruikt samen met Qt Quick 3D voor realistische interactie en verplaatsing van objecten in 3D-scènes. De implementatie is gebaseerd op de PhysX-engine.
- De Qt Quick 3D-module heeft experimentele ondersteuning voor globale verlichting toegevoegd met behulp van belichtingskaarten, die het mogelijk maken om het licht van verschillende bronnen realistischer te imiteren in 3D-scènes. In Qt Quick 3D is ook ondersteuning voor lineaire deeltjes, glanzende materialen, uitgebreide reflectie-instellingen, skyboxes en eigen materialen en texturen geïmplementeerd.

- De functionaliteit van de in Qt Quick aangeboden TableView- en TreeView-typen is uitgebreid, met ondersteuning voor navigatie via het toetsenbord, het selecteren van rijen en kolommen, een vollediger beheer van de celposities, animatie, samenvouwen en uitbreiden van boomstructuren.
- In Qt Quick is een nieuw type FrameAnimation voorgesteld, waarmee code synchroon met animatiekaders kan worden uitgevoerd. Voor een soepelere animatie is in Qt Quick ook automatische verwerking van onjuiste vsync-synchronisatie bij meerthreading-rendering mogelijk gemaakt.

- In de QQuickWidget, die interfaces mogelijk maakt die elementen combineren van Qt Quick en Qt Widget, is volledige ondersteuning voor de RHI (Rendering Hardware Interface) toegevoegd, waardoor niet alleen met OpenGL, maar ook met API's zoals Vulkan, Metal en Direct 3D kan worden gewerkt.
- In de Qt Network-module is de klasse QSslServer toegevoegd, die het mogelijk maakt om effectieve netwerken te creëren servers, die TLS gebruiken voor het opzetten van een beveiligd communicatiekanaal.
- In de Qt Multimedia-module is een experimentele backend toegevoegd die voor video- en geluidsverwerking het FFmpeg-pakket gebruikt. Bij het afspelen van video is de verwerking van kleurenschema's en HDR verbeterd, en is de mogelijkheid toegevoegd om ondertitels te substitueren via QVideoFrames. Ondersteuning voor ruimtelijke audio is toegevoegd, waarmee scènes met driedimensionale geluidsdistributie kunnen worden gemaakt en virtuele kamers kunnen worden gesimuleerd met eigenschappen voor geluidsreflectie, afhankelijk van de locatie van de luisteraar, de grootte van de ruimte en de materialen van muren en vloeren.
- In de Qt Widgets-module is de QFormLayout-klasse uitgebreid met hulpmiddelen voor het bouwen van interfaces voor het vastleggen van gestructureerde gebruikersinvoer. In de QWizard-klasse, die is ontworpen om meerstapsinterfaces te creëren, zijn API's toegevoegd voor het beheren van de zichtbaarheid van regels in formulieren en voor het navigeren naar elke pagina in de wizard.
- In QML is de ondersteuning voor waardetypen verbeterd, waardoor het eenvoudiger wordt om gestructureerde gegevens van C++ naar QML over te dragen. Dergelijke typen en lijsten van deze typen kunnen nu in eigenschappen worden gebruikt zonder dat ze hoeven te worden ingekapseld in QObject. De mogelijkheden van de LSP-server zijn uitgebreid voor de integratie van QML-taalondersteuning in geïntegreerde ontwikkelomgevingen. De QML Type Compiler is standaard ingeschakeld, waardoor het mogelijk is om de QML-weergave naar C++-code te compileren.
- De mogelijkheden voor het werken met stringliteral in de code zijn uitgebreid – de klassen QStringEncoder en QStringDecoder hebben ondersteuning gekregen voor alle coderingen die beschikbaar zijn in ICU (International Components for Unicode).
- De QTextDocuments-klasse heeft ondersteuning voor Markdown-opmaak toegevoegd.
Bron: opennet.ru




