Tvrtka Qt Company objavila je izdanje Qt frameworka 6.11, u kojem je nastavljena stabilizacija i poboljšanje funkcionalnosti grane Qt 6. U Qt 6.11 podržane su platforme 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 i QNX. Izvorni kodovi Qt komponenti isporučuju se pod licencama LGPLv3 i GPLv2. Qt 6.11 je stekao status međureleasea, a javna podrška trajat će 6 mjeseci (+ dodatnih 6 mjeseci za komercijalne korisnike).
Glavne promjene u Qt 6.11:
- Dodan je Qt Canvas Painter modul, koji pruža API za hardverski ubrzanu izradu 2D sadržaja, izgrađen uzimajući u obzir HTML specifikaciju Canvas 2D Context. Za izradu se koristi RHI (Rendering Hardware Interface) engine, koji podržava različite 3D API-je (OpenGL, Vulkan, Metal i Direct 3D), čime je postignuto značajno povećanje performansi. U provedenim testovima Qt Canvas Painter bio je dvostruko brži od QPainter-a s OpenGL backendom na tipičnom Lenovo ThinkPad P16 Gen 2 laptopu, pet puta brži na budžetskom Android tabletu Lenovo Tab M10 HD i deseterostruko brži na vrhunskom Android tabletu Samsung Galaxy Tab S8.

Osim visoke performanse, Qt Canvas Painter implementira podršku za napredne mogućnosti, kao što su prilagodljivo antialiasing, okvira gradijenti i sjene (QCanvasBoxGradient i QCanvasBoxShadow slično CSS svojstvu box-shadow), mrežni uzorci (QCanvasGridPattern), korisnički shader četkice i efekti boje za prilagodbu prozirnosti, svjetline, kontrasta i zasićenosti.

- Funkcionalnost modula Qt Quick 3D približena je mogućnostima gaming motora. Dodana je podrška za tehniku renderiranja SSGI (Screen Space Global Illumination) za simulaciju refleksije svjetlosti s površina tijekom post-obrade (alternativa pečenju svjetlosnih mapa) i SSR (Screen Space Reflections) za realističan prikaz refleksija u stvarnom vremenu. Algoritam za zaglađivanje pokretnih objekata poboljšan je generiranjem vektora kretanja za svaki objekt. Implementirane su prilagodljive render prolaze (render-pass) koje se mogu koristiti izravno iz QML za maske slojeva, efekte post-obrade i određivanje objekata prema boji. Dodani su novi programski sučelja za slojeve i oznake, omogućujući upravljanje pojedinim render prolazima, uključivanje elemenata u različitim fazama renderiranja i preusmjeravanje u ciljne renderiranje baferi.

- Proširene mogućnosti modula Qt Graphs. Dodan je tip CustomSeries, koji omogućuje stvaranje vlastitih grafova u kojima za prikaz svakog podatkovnog elementa odgovara korisnički definirani delegat. U 3D grafovima implementirana je podrška za više instanci osi, na primjer, u QBar3DSeries moguće je koristiti pojedinačne osi za rowAxis, valueAxis i columnAxis, dok u QScatter3DSeries i QSurface3DSeries postoje zasebne osi za axisX, axisY i axisZ. Dodana su nova svojstva za redefiniranje boja za pojedine osi, postavljanje gradijenata na grafovima, promjenu stila linija i pozicioniranje oznaka. Dodan je primjer stvaranja prilagodljivih 2D i 3D grafova — Wind Turbine Dashboard.

- Dodan je eksperimentalni modul Qt TaskTree, koji pruža deklarativni pristup za stvaranje i izvršavanje asinhronih zadataka na C++. Ključne komponente Qt TaskTree su: „recepti“ — ponovno upotrebljivi objekti koji opisuju asinhroni radni postupak; „grupe“ — definiraju politike za podzadatke; „spremište“ za dijeljenje podataka između zadataka; „iteratori“ za petlje i ponovno izvršavanje zadataka. Qt TaskTree također rješava problem nespojivosti između API-ja, unificirajući različite asinhrone API-je u tipični sučelje.

- Proširene su mogućnosti za rad s animiranom vektorskom grafikom, koja se generira iz slika u formatima SVG i Lottie. Stabilizirani su modul Qt Quick VectorImage i alat lottietoqml. Dodana je podrška za morfing animacije, SVG maske, SVG simbole i slojeve-maske (matte layer, za upravljanje vidljivosti drugog sloja).
- U Qt Quick Controls dodan je komponenta DoubleSpinBox. U DialogButtonBoxu implementirana je mogućnost upravljanja obradom gumba prema zadanim postavkama. U efektu RectangularShadow dodano je neovisno upravljanje radijusima kutova.
- U Qt Widgets u QWizard dodana je opcija StretchBanner; u QAbstractItemView implementiran je parametar keyboardSearchFlags za podešavanje ponašanja pretraživanja dok se pritisnu tipke; u QColumnView dodana su svojstva za upravljanje vidljivošću pregleda.
- Dodan je modul Qt OpenAPI, koji omogućuje generiranje koda HTTP klijenta, koji koristi Qt Networks RESTful API, na osnovu OpenAPI specifikacije u YAML formatu.
- U modul Qt GRPC dodan je mehanizam za upravljanje tokom i sadržajem zahtjeva i odgovora.
- U modulu Qt HTTP Server proširena su sredstva za upravljanje limitima i poboljšana obrada odgovora u radnom toku. U QNetworkRequestu dodana je mogućnost podešavanja TCP Keep Alive parametara (po defaultu neaktivne veze automatski se zatvaraju nakon 2 minute).
- U QML Language Serveru, koji se koristi za integraciju s IDE, dodane su informacije o mjestu određivanja tipa QML u C++ kodu za pojednostavljenje navigacije između QML i C++ iz IDE-a – radom s C++ kodom mogu se pronaći QML objekti po identifikatorima i lako se prolazi kroz hijerarhiju QML konteksta.
- Pored QRangeModel implementirana je klasa QRangeModelAdapter koja pruža C++ API za izmjenu podataka modela, komunicirajući putem protokola QAbstractItemModel, što pojednostavljuje prijenos podataka iz backenda u Qt Quick ili Qt Widget.
- Dodana je podrška za platformu Android 16. Implementirana je funkcionalnost Google Play Feature Delivery za dijeljenje aplikacija u pakete (glavni paket se odmah instalira iz Google Playa, a dodatni se preuzimaju prema potrebi). Za Android Automotive implementirana je podrška za pokretanje Qt bez Android ovisnosti za brzo pokretanje rendiranja.
Dodatno, vrijedi istaknuti nedavno objavljeno izdanje integriranog razvojnog okruženja Qt Creator 19, namijenjenog za stvaranje višekratnih aplikacija koristeći Qt biblioteku. Podržava razvoj klasičnih programa na C++ jeziku, kao i korištenje QML jezika, u kojem se za definiranje scenarija koristi JavaScript, dok se struktura i parametri sučelja definiraju blokovima sličnim CSS-u. Gotove kompilacije su dostupne za Linux, Windows i macOS.
Među novostima ističe se minimap način (Preferences > Text Editor > Display > Enable minimap), koji prikazuje mini-sličicu cijelog sadržaja pored trake za pomicanje, omogućujući da se cijeli kod istovremeno pregleda. Ugrađen je jednostavni MCP poslužitelj za integraciju s AI asistentima, što omogućava otvaranje datoteka i projekata, pokretanje kompilacija i debugiranje. Pojednostavljena je konfiguracija kompilacije na vanjskim uređajima - dodano je dugme Run Auto-Detection za automatsko prepoznavanje verzije Qt-a, kompajlera, debuggere i CMake-a nakon registracije uređaja. Implementiran je direktni pristup datotečnim sustavima povezanih uređaja, Android uređaja i emulatore.

Izvor: opennet.ru





