Společnost Qt Company zveřejnila vydání frameworku Qt 6.4, ve kterém pokračuje práce na stabilizaci a rozšiřování funkcionality větve Qt 6. V Qt 6.4 je zajištěna podpora platforem 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 a QNX. Zdrojové kódy komponentů Qt jsou dodávány pod licencemi LGPLv3 a GPLv2.
Hlavní změny v Qt 6.4:
- Byla zajištěna plná podpora platformy WebAssembly, která umožňuje vytvářet Qt aplikace, které běží v webovém prohlížeči a jsou přenositelné mezi různými hardwarovými platformami. Aplikace sestavované pro platformu WebAssembly díky JIT kompilaci běží s výkonem blízkým nativnímu kódu, mohou používat Qt Quick, Qt Quick 3D a dostupné v Qt vizualizační nástroje. Protože aplikace založené na WebAssembly běží v izolovaném prostředí prohlížeče, je přístup k některým API pro práci s místními zdroji a službami operačního systému omezen, ale navíc jsou poskytována API pro integraci s prohlížečem.
- Do hlavního složení byl vrácen modul Qt TextToSpeech, který byl dodáván v Qt 5, ale nebyl zahrnut do větve Qt 6. Modul poskytuje prostředky pro syntézu řeči, což může být použito pro zvýšení přístupnosti aplikací pro osoby se zdravotním postižením nebo pro implementaci nových prostředků pozadí informování uživatele, například pro výstup oznámení v aplikacích pro automobilní informační a zábavní systémy. V Linuxu se převod textu na řeč provádí pomocí knihovny Speech Dispatcher (libspeechd), a na jiných platformách prostřednictvím standardního API operačního systému.
- Byl přidán experimentální modul s implementací stylového vzhledu iOS pro Qt Quick. Aplikace na bázi Qt Quick Controls mohou automaticky používat tento modul pro vytváření nativního vzhledu rozhraní na platformě iOS, obdobně jako je nativní vzhled aplikován v Windows, macOS a Android.


- Byl přidán experimentální modul QtHttpServer, který umožňuje integrovat do aplikací funkčnost HTTP serveru, který podporuje HTTP/1.1, TLS/HTTPS, WebSockets, zpracování chyb, směrování požadavků na základě parametrů v URL (QHttpServerRouter) a REST API.
- Byl přidán experimentální modul Qt Quick 3D Physics, který poskytuje API pro simulaci fyzikálních procesů, jež lze použít spolu s Qt Quick 3D pro realistickou interakci a pohyb objektů v 3D scénách. Implementace je založena na enginu PhysX.
- Experimentální podpora globálního osvětlení byla přidána do modulu Qt Quick 3D pomocí map osvětlení, které umožňují realistickější simulaci světla z různých zdrojů ve 3D scéně. V Qt Quick 3D byla také implementována podpora liniových částic, lesklých materiálů, rozšířených nastavení odrazu, skyboxů a vlastních materiálů a textur.

- Funkce typů TableView a TreeView poskytovaných v Qt Quick byly rozšířeny, nyní podporují navigaci pomocí klávesnice, zvýrazňování řádků a sloupců, komplexnější řízení polohy buněk, animaci, sbalování a rozbalování stromových struktur.
- V Qt Quick byl navržen nový typ FrameAnimation, který umožňuje spouštět kód synchronně s rámy animace. Pro zajištění plynulosti animace v Qt Quick byla také zajištěna automatická správa nesprávné synchronizace vsync při vícetránkové renderaci.

- Ve widgetu QQuickWidget, který umožňuje vytvářet rozhraní kombinující prvky založené na Qt Quick a Qt Widget, byla implementována plná podpora vrstvy RHI (Rendering Hardware Interface), což umožňuje práci nejen s OpenGL, ale také nad API Vulkan, Metal a Direct 3D.
- Do modulu Qt Network byl přidán třídní QSslServer, který umožňuje vytvářet efektivní síťové servery, využívající TLS pro zřízení zabezpečeného komunikačního kanálu.
- Do modulu Qt Multimedia byl přidán experimentální backend, který využívá balíček FFmpeg pro zpracování videa a zvuku. Při přehrávání videa bylo vylepšeno zpracování barevných prostorů a HDR, byla přidána možnost podstrčit titulky přes QVideoFrames. Byla také přidána podpora prostorového zvuku, která umožňuje vytvářet scény s trojrozměrným rozložením zvuku a simulovat virtuální místnosti se charakteristikami odrazu zvuku v závislosti na umístění posluchače, velikosti místnosti a materiálech stěn a podlahy.
- V modulu Qt Widgets byl třída QFormLayout rozšířena o prostředky pro vytváření rozhraní pro zpracování strukturovaného uživatelského vstupu. V třídě QWizard, určené pro vytváření vícestupňových rozhraní, byly přidány API pro řízení viditelnosti řádků ve formulářích a přechod na jakoukoli stránku v průvodci.
- V QML byla vylepšena podpora typů hodnot, která usnadňuje předávání strukturovaných dat z C++ do QML. Tyto typy a seznamy z těchto typů mohou být nyní používány v vlastnostech bez obalového typu založeného na QObject. Možnosti LSP serveru pro integraci podpory jazyka QML v integrovaných vývojových prostředích byly rozšířeny. Ve výchozím nastavení byl zahrnut QML Type Compiler, který umožňuje kompilaci QML prezentace do kódu v C++.
- Byly rozšířeny možnosti pro práci s řetězcovými literály v kódu — do tříd QStringEncoder a QStringDecoder byla přidána podpora všech kódování dostupných v ICU (International Components for Unicode).
- Ve třídě QTextDocuments byla přidána podpora pro Markdown.
Zdroj: opennet.ru




