Společnost Qt Company vydala verzi frameworku Qt 6.11, ve které pokračuje práce na stabilizaci a rozšiřování funkcionality větve Qt 6. V Qt 6.11 byla poskytnuta podpora platforem Windows 10+, macOS 13+, Linux (Ubuntu 22.04/24.04, openSUSE 15.6/16, SUSE 15 SP6, RHEL 8.10/9.6/10, Debian 11.6/12), iOS 17+, Android 9+(API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS a QNX. Zdrojové kódy komponentů Qt jsou poskytovány pod licencemi LGPLv3 a GPLv2. Qt 6.11 získal status mezičlánku, veřejná podpora bude zajišťována po dobu 6 měsíců (+ dalších 6 měsíců pro komerční uživatele).
Hlavní změny v Qt 6.11:
- Byl přidán modul Qt Canvas Painter, který poskytuje API pro hardwarově urychlené vykreslování 2D obsahu, postavené s ohledem na HTML specifikaci Canvas 2D Context. Pro vykreslování je využíván engine RHI (Rendering Hardware Interface), který podporuje různé 3D API (OpenGL, Vulkan, Metal a Direct 3D), díky čemuž bylo dosaženo výrazného zvýšení výkonu. V provedených testech byl Qt Canvas Painter dvakrát rychlejší než QPainter s backendem OpenGL na typickém notebooku Lenovo ThinkPad P16 Gen 2, pětkrát rychlejší na cenově dostupném Android tabletu Lenovo Tab M10 HD a desetinásobně rychlejší na špičkovém Android tabletu Samsung Galaxy Tab S8.

Kromě vysokého výkonu v Qt Canvas Painter byla implementována podpora rozšířených funkcí, jako je přizpůsobitelné vyhlazování (antialiasing), obrysové gradienty a stíny (QCanvasBoxGradient a QCanvasBoxShadow podobně jako CSS vlastnost box-shadow), síťové šablony (QCanvasGridPattern), uživatelské shaderové štětce a barevné efekty pro úpravu průhlednosti, jasu, kontrastu a sytosti.

- Funkcionalita modulu Qt Quick 3D se blíží možnostem herních enginů. Byla přidána podpora techniky vykreslování SSGI (Screen Space Global Illumination) pro simulaci odrazu světla od povrchů během post-processingu (alternativa k pečení map osvětlení (lightmap)) a SSR (Screen Space Reflections) pro realistické vykreslování odrazů v reálném čase. Algoritmus pro vyhlazení pohybujících se objektů byl vylepšen generováním vektorů pohybu pro každý objekt. Byly implementovány konfigurovatelné průchody vykreslováním (render-pass), které lze používat přímo z QML pro masky vrstev, efekty post-processingu a určení objektů podle barvy (color picking). Byla přidána nová rozhraní pro vrstvy a tagy, která umožňují řídit jednotlivé průchody vykreslováním, zapnutí prvků v různých fázích renderovacího konvejeru (render pipeline) a přesměrování do cílových vyrovnávacích pamětí vykreslování.

- Možnosti modulu Qt Graphs byly rozšířeny. Přidán typ CustomSeries, který umožňuje vytvářet vlastní grafy, v nichž za vykreslení každého prvku dat odpovídá uživatelsky definovaný delegát. V 3D grafech byla implementována podpora více instancí os, například v QBar3DSeries lze používat oddělené osy pro rowAxis, valueAxis a columnAxis, a v QScatter3DSeries a QSurface3DSeries – oddělené osy pro axisX, axisY a axisZ. Byly přidány nové vlastnosti pro přepsání barev pro jednotlivé osy, nastavení gradientů na grafech, změnu stylů čar a pozicování značek. Přidán příklad vytváření konfigurovatelných 2D a 3D grafů – Wind Turbine Dashboard.

- Byl přidán experimentální modul Qt TaskTree, který poskytuje deklarativní přístup k vytváření a vykonávání asynchronních úloh v C++. Klíčovými komponentami Qt TaskTree jsou: "recepty" – znovu použitelné objekty popisující asynchronní pracovní postup; "skupiny" – definují politiky pro podřízené úlohy; "úložiště" pro sdílení dat mezi úlohami; "iterátory" pro cykly a opětovné vykonávání úloh. Qt TaskTree rovněž řeší problém nekompatibility mezi API unifikováním různých asynchronních API do typového rozhraní.

- Byly rozšířeny možnosti práce s animovanou vektorovou grafikou, která je tvořena z obrázků ve formátech SVG a Lottie. Stabilizovány byly modul Qt Quick VectorImage a nástroj lottietoqml. Byla přidána podpora morfingové animace, SVG masek, SVG symbolů a masek vrstev (matte layer pro řízení viditelnosti jiného vrstvy).
- Do Qt Quick Controls byl přidán komponent DoubleSpinBox. V DialogButtonBox byla implementována možnost řízení zpracování výchozích tlačítek. V efektu RectangularShadow se objevilo nezávislé řízení rádiusů rohů.
- V Qt Widgets byl do QWizard přidán parametr StretchBanner; v QAbstractItemView byl implementován parametr keyboardSearchFlags pro nastavení chování vyhledávání během stisknutí kláves; v QColumnView bylo přidáno vlastnost pro řízení viditelnosti náhledu.
- Byl přidán modul Qt OpenAPI, který umožňuje generovat kód HTTP klienta využívajícího Qt Networks RESTful API na základě specifikace OpenAPI ve formátu YAML.
- Do modulu Qt GRPC byl přidán mechanismus pro řízení toku a obsahu požadavků a odpovědí.
- V modulu Qt HTTP Server byly rozšířeny prostředky pro řízení limitů a vylepšeno zpracování odpovědí v pracovním vlákně. V QNetworkRequest byla přidána možnost nastavení parametrů TCP Keep Alive (výchozí neaktivní spojení se automaticky ukončují po 2 minutách).
- Do QML Language Server, používaného pro integraci s IDE, byly přidány informace o místě definice typu QML v C++ kódu pro usnadnění navigace mezi QML a C++ z IDE — při práci s C++ kódem je možné nalézt QML objekty podle identifikátorů a snadno procházet hierarchií QML kontextů.
- K QRangeModel byl implementován třída QRangeModelAdapter, která poskytuje C++ API pro úpravu dat modelu, přičemž komunikuje prostřednictvím protokolu QAbstractItemModel, což usnadňuje přenos dat z backendového kódu C++ do Qt Quick nebo Qt Widget.
- Byla přidána podpora platformy Android 16. Byla implementována funkčnost Google Play Feature Delivery pro rozdělení aplikace na balíčky (hlavní balíček se instaluje z Google Play okamžitě, zatímco další jsou stahovány podle potřeby). Pro Android Automotive byla implementována podpora spuštění Qt bez závislostí na Androidu pro rychlý start vykreslování.
Dále lze zmínit nedávno publikovanou verzi integrovaného vývojového prostředí Qt Creator 19, určenou pro vytváření multiplatformních aplikací s využitím knihovny Qt. Podporuje jak vývoj klasických programů v jazyce C++, tak použití jazyka QML, ve kterém se pro definici skriptů používá JavaScript a struktura a parametry prvků uživatelského rozhraní jsou určovány bloky podobnými CSS. Hotové sestavy jsou připraveny pro Linux, Windows a macOS.
Mezi novinkami vyniká režim minimapy (Preferences > Text Editor > Display > Enable minimap), který vedle posuvníku zobrazuje miniaturu celého obsahu, což umožňuje rychlý přehled celého kódu. Součástí je jednoduchý MCP-server pro integraci s AI asistenty, který umožňuje otevírat soubory a projekty, spouštět sestavení a provádět ladění. Byla zjednodušena konfigurace sestavení na externích zařízeních — byla přidána tlačítko Run Auto-Detection pro automatické rozpoznání verze Qt, překladače, ladicího programu a CMake po připojení zařízení. Byla implementována podpora přímého přístupu k souborovým systémům připojených zařízení, Android zařízení a emulátorů.

Zdroj: opennet.ru





