Podjetje Qt Company je objavilo različico ogrodja Qt 6.11, v kateri so nadaljevali z stabilizacijo in povečevanjem funkcionalnosti različice Qt 6. V Qt 6.11 je podprta platforma 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 in QNX. Izvorne kode komponent Qt so na voljo pod licencami LGPLv3 in GPLv2. Qt 6.11 je dosegel status vmesne izdaje, javna podpora zanj bo trajala 6 mesecev (+ še 6 mesecev za komercialne uporabnike).
Glavne spremembe v Qt 6.11:
- Dodana je bila komponenta Qt Canvas Painter, ki nudi API za strojno pospešeno risanje 2D-vsebine, zasnovano ob upoštevanju specifikacije HTML za Canvas 2D Context. Za risanje se uporablja motor RHI (Rendering Hardware Interface), ki podpira različne 3D API (OpenGL, Vulkan, Metal in Direct 3D), kar je omogočilo znatno povečanje zmogljivosti. Pri izvedenih testih se je Qt Canvas Painter izkazal za dvakrat hitrejše od QPainter z odprtokodnim vmesnikom OpenGL na tipičnem prenosnem računalniku Lenovo ThinkPad P16 Gen 2, petkrat hitrejše na cenovno ugodnem Android tabličnem računalniku Lenovo Tab M10 HD in desetkrat hitrejše na vrhunskem Android tabličnem računalniku Samsung Galaxy Tab S8.

Poleg visoke zmogljivosti Qt Canvas Painter vključuje podporo za napredne možnosti, kot so prilagodljivo gladkanje (antialiasing), obročne gradienti in sence (QCanvasBoxGradient in QCanvasBoxShadow podobno CSS lastnosti box-shadow), mrežne predloge (QCanvasGridPattern), uporabniški senčniki in barvni učinki za spreminjanje prosojnosti, svetlosti, kontrasta in nasičenosti.

- Funkcionalnost modula Qt Quick 3D je blizu mogućnostima igračkih motora. Dodana je podrška za tehniku renderiranja SSGI (Globalna iluminacija prostora ekrana) za simulaciju refleksije svjetlosti s površina tokom post-procesiranja (alternativa za pečenje mapa osvjetljenja) i SSR (Refleksije prostora ekrana) za realističan prikaz refleksija u realnom vremenu. Algoritam za izravnavanje pokretnih objekata poboljšan je generiranjem vektora kretanja za svaki objekt. Implementirane su prilagodljive render prolazi koje se mogu koristiti izravno iz QML za maske slojeva, efekte post-procesiranja i određivanje objekata prema boji. Dodani su novi programski interfejsi za slojeve i oznake, koji omogućavaju upravljanje pojedinačnim prolazima renderiranja, aktiviranje elemenata u različitim fazama renderiranja i preusmjeravanje u ciljne zone renderiranja.

- Proširene su mogućnosti modula Qt Graphs. Dodan je tip CustomSeries koji omogućava kreiranje vlastitih grafikona, gdje je za prikaz svakog elementa podataka zadužen odabrani korisnički delegat. U 3D grafikonima implementirana je podrška za više instanci osi, na primjer, u QBar3DSeries mogu se koristiti odvojene osi za rowAxis, valueAxis i columnAxis, dok u QScatter3DSeries i QSurface3DSeries postoje odvojene osi za axisX, axisY i axisZ. Dodana su nova svojstva za redefiniranje boja za pojedinačne osi, podešavanje gradijenata na grafikonima, promjenu stila linija i pozicioniranje oznaka. Dodan je primer za kreiranje prilagodljivih 2D i 3D grafikona - Dashboard vjetroturbina.

- Dodan je eksperimentalni modul Qt TaskTree, koji pruža deklarativni pristup za kreiranje i izvođenje asinkronih zadataka na C++. Ključne komponente Qt TaskTree su: "recepti" - ponovno korišteni objekti koji opisuju asinkroni radni tok; "grupe" - definišu politike za dječje zadatke; "skladište" za dijeljenje podataka između zadataka; "iteratori" za petlje i ponovni izvršavanje zadataka. Qt TaskTree također rješava problem nekompatibilnosti između API-ja, unificirajući različite asinkrone API-je u standardni interfejs.

- Razširjene so možnosti dela z animirano vektorsko grafiko, ustvarjeno iz slik v formatih SVG in Lottie. Stabilizirani sta modul Qt Quick VectorImage in orodje lottietoqml. Dodana je podpora za animacijo morphing, SVG maske, SVG simbole in maske plasti (matte layer, za upravljanje vidnosti druge plasti).
- V Qt Quick Controls je dodana komponenta DoubleSpinBox. V DialogButtonBox je realizirana možnost upravljanja obdelave privzetih gumbov. V učinku RectangularShadow je prišlo do neodvisnega upravljanja radiji vogalov.
- V Qt Widgets je v QWizard dodana možnost StretchBanner; v QAbstractItemView je realiziran parameter keyboardSearchFlags za nastavitev vedenja iskanja med pritiskanjem tipk; v QColumnView je dodana lastnost za upravljanje vidnosti predogleda.
- Dodan je modul Qt OpenAPI, ki omogoča generiranje kode HTTP-kotisnika, ki uporablja QT Networks RESTful API, na podlagi specifikacije OpenAPI v formatu YAML.
- V modul Qt GRPC je dodan mehanizem za upravljanje poteka in vsebino zahtev in odgovorov.
- V modulu Qt HTTP Server so razširjena sredstva za upravljanje omejitev in izboljšano obravnavanje odgovorov v delovnem toku. V QNetworkRequest je dodana možnost nastavitve parametrov TCP Keep Alive (privzeto neaktivne povezave se samodejno zaključijo po 2 minutah).
- V QML Language Server, ki se uporablja za integracijo z IDE, so dodane informacije o kraju definicije tipa QML v C++ kodi za poenostavitev navigacije med QML in C++ iz IDE - med delom s C++ kodo je mogoče najti QML objekte po identifikatorjih in enostavno prehajati po hierarhiji QML kontekstov.
- Poleg QRangeModel je realiziran razred QRangeModelAdapter, ki zagotavlja C++ API za spreminjanje podatkov modela, ki sodeluje preko protokola QAbstractItemModel, kar poenostavi prenos podatkov iz back-end kode v C++ v Qt Quick ali Qt Widget.
- Dodana je podpora za platformo Android 16. Realizirana je funkcionalnost Google Play Feature Delivery za razdelitev aplikacije na pakete (glavni paket se takoj namesti iz Google Play, dodatni pa se naložijo po potrebi). Za Android Automotive je bila реализирана podpora za zagon Qt brez odvisnosti od Androida za hitro zagon risanja.
Dodatno se može napomenuti nedavno objavljeno izdanje integrisanog razvojnog okruženja Qt Creator 19, namenjenog za kreiranje multiplatformskih aplikacija koristeći Qt biblioteku. Podržana je kako razvoj klasičnih programa na C++ jeziku, tako i korišćenje QML jezika, u kojem se JavaScript koristi za definisanje scenarija, dok se struktura i parametri interfejsnih elemenata postavljaju CSS-sličnim blokovima. Gotove verzije su napravljene za Linux, Windows i macOS.
Među novinama se izdvaja način minimapa (Preferences > Text Editor > Display > Enable minimap), koji prikazuje mini-svežanj celokupnog sadržaja pored trake za pomeranje, omogućavajući da se jednim pogledom obuhvati cijeli kod. Ugrađen je jednostavan MCP-server za integraciju sa AI asistentima, koji omogućava otvaranje fajlova i projekata, pokretanje build-a, kao i debagovanje. Pojednostavljena je konfiguracija izgradnje na spoljnim uređajima – dodata je dugmad Run Auto-Detection za automatsko prepoznavanje verzije Qt-a, kompajlera, debagger-a i CMake-a nakon registracije uređaja. Implementirana je podrška za direktan pristup datotekama povezanih uređaja, Android uređaja i emulatora.

Izvor: opennet.ru





