Compania Qt a lansat versiunea 6.6 a framework-ului Qt, continuând munca de stabilizare și extindere a funcționalităților ramurii Qt 6. Versiunea Qt 6.6 oferă suport pentru platformele Windows 10+, macOS 11+, Linux (Ubuntu 22.04, openSUSE 15.4, SUSE 15 SP4, RHEL 8.6/9.0), iOS 14+, Android 8+ (API 23+), webOS, WebAssembly, INTEGRITY și QNX. Codurile sursă ale componentelor Qt sunt disponibile sub licențele LGPLv3 și GPLv2.
Modificările principale în Qt 6.6:
- În modulul Qt Quick, a fost implementat suport experimental pentru aranjamente adaptative ale interfeței. Pentru modificarea dinamică a dispunerii interfeței în funcție de dimensiunea ferestrei și pentru plasarea automată a elementelor ținând cont de structura actualului aranjament, a fost propusă clasa LayoutItemProxy, iar în modulul Qt Quick Layouts a fost oferită posibilitatea utilizării dimensiunilor uniforme pentru celule în aranjamente cu plasarea elementelor pe gride, linii și coloane.

- În Qt Quick a fost adăugat suport pentru modurile de selecție (proprietatea selectionMode) în tipul TableView în QML (de exemplu, se poate controla selecția celulelor, liniilor, coloanelor și seturilor de celule), a fost oferită posibilitatea modificării proprietății rootIndex, în tipul TreeView în QML a fost extins controlul asupra stilului barelor de derulare (scroll-deceleration) în tipul Flickable în QML, iar scurtarea automată a căilor de fișiere a fost implementată. A fost oferit acces din QML la API-ul de gestionare a permisiunilor.
- A fost adăugat modulul experimental Qt Graphs, destinat furnizării unui modul universal pentru vizualizarea unor colecții mari de date în continuă schimbare și pentru realizarea diverselor tipuri de grafice. Modulul este dezvoltat ca o înlocuire universală a vechiului modul Qt DataVisualization, care se baza pe OpenGL, și a modulului Qt Charts. Modulul este încă în dezvoltare și în prezent este pus accentul pe reproducerea funcționalității Qt DataVisualization deasupra Qt Quick 3D și pe utilizarea unui nou motor de randare (RHI, Rendering Hardware Interface), care suportă diverse API-uri 3D (OpenGL, Vulkan, Metal și Direct 3D).

- Modul Qt Multimedia a adăugat clasa QWindowCapture pentru capturarea conținutului ferestrelor individuale, suplimentând clasa QScreenCapture introdusă în versiunea anterioară, care permitea doar capturarea întregului ecran. QWindowCapture permite obținerea unei liste cu ferontele disponibile pentru capturare și poate fi folosit în aplicații pentru a oferi partajarea feronților. Capturarea fereastrelor și a ecranului este suportată utilizând backend-ul FFmpeg pe toate platformele, cu excepția sistemelor care folosesc protocolul Wayland.
- Clasa QMediaRecorder a fost extinsă cu proprietăți pentru gestionarea calității videoclipurilor, a rezoluției și a bitrate-ului.
- Funcționalitățile modulelor Qt GRPC și Qt Protobuf au fost extinse, permițând accesul la serviciile gRPC și realizarea serializării claselor Qt folosind protocolul Protocol Buffer. În Qt GRPC au fost adăugate noi opțiuni QGrpcChannelOptions și QGrpcCallOptions pentru a simplifica configurarea canalelor și apelurilor, precum și pentru a limita timpul maxim de execuție al apelului sau al fluxului. A fost adăugată opțiunea QGrpcMetadata pentru a permite clientului să seteze metadatele și să citească metadatele returnate. serverul. În Qt GRPC este integrat suportul tipului QML pentru generarea automată a claselor client QtGRPC. În Qt Protobuf, a fost permisă includerea în schema *.proto a unor tipuri Qt Core și Qt GUI, precum și furnizarea posibilității de acces la setările QML prin clasele QProtobufMessage. A fost adăugat suport pentru tipurile google.protobuf.Any și oneof.
- Modul Qt WebEngine a adăugat o API pentru accesarea setărilor de confidențialitate și securitate, care permite dezactivarea anumitor funcționalități ale motorului de browser. De exemplu, prin intermediul atributelor QWebEngineUrlScheme::FetchApiAllowed și QWebEngineSettings::DisableReadingFromCanvas, se pot dezactiva API-ul Fetch și randarea elementelor Canvas pentru a reduce riscul de identificare pasivă. A fost adăugat suport pentru URL-ul intern „chrome://qt”, care deschide o pagină cu informații despre versiunea motorului Chromium utilizat.
- Modulul Qt Sql a adăugat un plugin cu suport pentru SGBD Mimer SQL, extinzând setările de conexiune în driverul pentru SGBD MySQL și MariaDB.
- Modulul Qt PDF a oferit clase pentru accesarea linkurilor, miniaturilor paginilor și paginilor selectate.
- În Qt Quick, tipul Font implementează o nouă API pentru personalizarea avansată a aranjării glifelor (shaping) în fonturile OpenType. A fost introdusă posibilitatea utilizării modulului Qt Quick Shapes pentru redarea de înaltă calitate a liniilor și curbelor cu ajutorul unui shader de fragment.

- Au fost efectuate lucrări de documentare a motorului de redare RHI (Rendering Hardware Interface), precum și stabilizarea API-ului său de nivel inferior. Nivelul de menținere a compatibilității inverse pentru RHI va corespunde acum API-ului Qt Platform Abstraction, ceea ce va permite utilizarea directă a RHI pentru dezvoltarea de cod de nivel inferior, multi-platformă, funcționând cu toate stivele grafice populare și API-urile grafice (OpenGL, Vulkan, Metal și Direct 3D).
- În modulul Qt Quick 3D a fost adăugată suportul pentru crearea procedurală din QML a texturilor și geometriei pe baza rețelei poligonale.
- În modulul Qt TextToSpeech a fost adăugată posibilitatea generării de date PCM (Pulse-Code Modulation) pentru prelucrarea ulterioară a vocii sintetizate (anterior se suporta doar redarea directă pe dispozitivul audio). S-au furnizat setări suplimentare pentru segmentarea textului, s-a adăugat un API pentru căutarea vocilor necesare și un API pentru determinarea funcțiilor disponibile ale motorului.
- În setul de module „Qt for Python”, care oferă instrumente pentru crearea de aplicații grafice în limbajul Python folosind Qt, a fost adăugată suportul pentru operații asincrone folosind asyncio. A fost asigurată compatibilitatea Qt for Python cu dispozitivele bazate pe arhitectura AArch64.
- A fost actualizat stack-ul Boot2Qt, care poate fi utilizat pentru a crea sisteme mobile încărcabile cu un mediu bazat pe Qt și QML. Mediul de sistem în Boot2Qt a fost actualizat la platforma Yocto 4.2 (Mickledore). Se lucrează la furnizarea de construcții gata Boot2Qt pentru plăcile NXP și dispozitivele Renesas R-Car.
- A fost adăugat suport pentru platforma Android 13. Pe platformele Windows și Linux, suportul pentru arhitectura ARM a fost îmbunătățit. Împreună cu colaboratorii din proiectul Debian, în depozitele standard ale distribuției au fost plasate pachete cu Qt 6 pentru Debian 11 și Debian 12, iar în depozitul Qt Company — pachete cu componente comerciale Qt 6.6 pentru Debian.
- Instrumentele de dezvoltare pentru platforma WebAssembly au fost îmbunătățite, permițând crearea aplicațiilor Qt care funcționează în browserele web și sunt portabile între diferite platforme hardware. Aplicațiile compilate pentru platforma WebAssembly, grație compilării JIT, rulează cu o performanță aproape de codul nativ, pot utiliza Qt Quick, Qt Quick 3D și instrumentele de vizualizare disponibile în Qt. În noua versiune, s-a simplificat depanarea aplicațiilor pentru WebAssembly și s-a îmbunătățit suportul pentru această platformă prin activarea legăturii dinamice (aplicațiile pentru WebAssembly pot fi acum furnizate cu biblioteci comune și pluginuri Qt).
Sursa: opennet.ro



