A Qt Company közzétette a Qt 6.8 keretrendszer kiadását, amely tovább folytatja a Qt 6 ág stabilizálását és funkcionalitásának bővítését. A Qt 6.8 támogatja a Windows 10+, macOS 12+, Linux (Ubuntu 22.04/24.04, openSUSE 15.5, SUSE 15 SP5, RHEL 8.8/9.2, Debian 11.6), iOS 16+, Android 9+(API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS és QNX platformokat. A Qt komponensek forráskódja LGPLv3 és GPLv2 licenc alatt érhető el.
A Qt 6.8 LTS kiadás státuszt kapott, amelynek frissítései öt éven át érhetők el a kereskedelmi licenc birtokosainak, ami két évvel hosszabb, mint a korábbi LTS kiadásoké. A nem kereskedelmi felhasználók számára a támogatási időszak fél év (az új jelentős kiadás kialakulásáig). A korábbi LTS ág, a Qt 6.5 támogatása 2026 májusáig tart, míg a Qt 6.2 korábbi LTS ág támogatása 2024. szeptember 30-án megszűnik. A Qt 5.15 ág támogatását 2025 májusáig biztosítják.
A Qt 6.8 főbb változásai:
- A Qt Graphs modul stabilizálva lett, és teljes mértékben támogatottá vált. Ez a modul különböző 2D és 3D grafikonok készítésére, valamint gyorsan változó adatok nagy gyűjteményeinek vizualizációjára szolgál. A modul egy univerzális helyettesítőként fejlődik a régi Qt DataVisualization modulhoz, amely az OpenGL-re épült, és a Qt Charts modulhoz. Az új modul a Qt Quick 3D-t és az RHI (Rendering Hardware Interface) renderelő motorját használja, amely támogat különböző 3D API-kat (OpenGL, Vulkan, Metal és Direct 3D).
A legutóbbi kiadáshoz képest a Qt Graphs 3D-ben teljesítményoptimalizálások kerültek bevezetésre, támogatja a háromdimenziós grafikonok (Bars3D) átlátszóságát, bővültek a címkék és fejléc helyének és megjelenésének kezelésére vonatkozó lehetőségek, és javult a navigációs rács vonalainak rajzolása. A Qt Graphs 2D-ben lehetőség nyílik egyedi oszlopdiagramok rajzolására (QML komponenseken keresztül), támogatást kaptak a halmozott oszlopdiagramok, és bővültek a címkék megjelenítésére szolgáló eszközök. Az API egységesítve lett a 2D és 3D grafikonok témáinak alkalmazására. A widget-specifikus hívásokat a Qt Graphs Widgets modulba helyezték át.
- A stabilizált és a teljesen támogatott modulokká átminősített QtHttpServer lehetővé teszi, hogy HTTP-szerver funkcionalitást integráljunk az alkalmazásokba, amely támogatja a HTTP/1.1, TLS/HTTPS, WebSocket, hibakezelést, és a URL paraméterei alapján történő kérésirányítást (QHttpServerRouter), valamint a REST API-t. A korábbi verzióhoz képest a QNetworkAccessManager osztályban bevezetésre került a lehetőség, hogy HTTP-kéréseket helyi socket-en keresztül küldjünk. Támogatott a QFormDataBuilder osztály használata, amely megkönnyíti több adathalmaz (például szöveges adatok és csatolt fájl) egy HTTP-kérésen belüli átkonvertálását (HTTP multi-part).
- A stabilizált és a teljesen támogatott modulokká átminősített Qt GRPC lehetővé teszi, hogy a szolgáltatásokhoz a gRPC protokollon keresztül férjünk hozzá.
- A stabilizált és a teljesen támogatott modulokká átminősített Qt Protobuf a Qt osztályok sorosítására szolgál, a Protocol Buffer protokoll használatával.
- Hozzáadva a mobil platformok, az Android 14 és az iOS 18 támogatása.
- Lehetővé vált desktop alkalmazások fejlesztése Linux és Windows rendszerekhez ARM processzorokkal, valamint az Apple Vision Pro és Meta Quest 3 XR 3D sisakokhoz.
- Hozzáadva a Raspberry Pi 5, NVIDIA AGX Orin és egyes SoC NXP, Toradex és STM alapú lapkák támogatása. Hozzáadva a RISC-V StarFive VisionFive 2 lapkák támogatása.
- Továbbfejlesztett lehetőségek a Qt vágott buildjeinek létrehozására, amelyek kis memória kapacitású eszközökön használhatók. Például a nem használt Qt funkciók és komponensek letiltásával a build mérete akár 77%-kal csökkenthető a tartós tárolóban, és a RAM-felhasználás 32%-kal csökkenthető, valamint jelentősen csökkenthető a betöltési idő.
- A Qt Multimedia modulban, Linux platformon valósult meg a képernyő rögzítésének támogatása a QScreenCapture osztály használatával, Wayland-alapú környezetekben a ScreenCast szolgáltatás és az XDG Desktop portál rendszer segítségével. Hozzáadva a QVideoFrameInput, QAbstractVideoBuffer és QAudioBufferInput osztályokat, amelyek lehetővé teszik, hogy saját multimédiás adatainkat a felvétel során a QMediaCaptureSession-ba küldjük, valamint a QAudioBufferOutput osztályt a dekódolás utáni hangtartalomra vonatkozó feldolgozók csatlakoztatásához.
- A Qt Quick Vector Image module has been added, allowing the integration of vector images in SVG format into Qt Quick scenes, which can be used, for example, to create scalable interface elements that are independent of resolution and screen size.

- A Qt Quick 3D XR module has been added for creating applications for virtual and augmented reality platforms, using Qt Quick 3D technologies. It supports interaction with three-dimensional environments created with Qt Quick 3D, enabling the use of hand tracking devices and VR controllers. Visualization can be done with Apple VisionPro glasses or 3D headsets that support the OpenXR standard, such as Meta Quest 2/3.

- Optimizations have been added in Qt Quick that speed up the rendering of complex scenes. The TableView class now allows moving columns and rows. The Image and BorderImage types have been implemented with support for asynchronous image loading (the old image remains until the new one is loaded).
- The Qt Quick Effect Maker module now supports animating sprites, bending elements in a circular manner, as well as using glowing effects and masked blur.
- In the Qt Quick Shapes module, when filling outlines, the use of any texture providers is allowed in elements of the ShapePath type. The QQuickRenderTarget class has new methods for managing texture processing and simplifying the integration of Qt Quick 3D with external engines, frameworks, and APIs.
- A new Fluent WinUI3 style has been proposed for Qt Quick Controls, allowing the creation of an interface that looks like Windows 11 on any platform. In macOS, the ability to use the platform-provided global menu in interfaces created with Quick MenuBar has been implemented.

- In Qt Quick 3D, shadow rendering has been improved through the use of cascade shadow maps and soft shadow filtering. New properties have been added to the PrincipledMaterial type. It is now possible to use the same properties in custom materials as in materials based on the PrincipledMaterial type.

- The Qt Network Auth module has added the QOAuthUriSchemeReplyHandler class for creating redirect handlers to another URI scheme during authentication using OAuth 2.0. The QOAuth2AuthorizationCodeFlow class now supports the OAuth extension PKCE (Proof Key for Code Exchange).
- A QDnsLookup osztályhoz hozzáadva a lehetőség, hogy kéréseket küldjünk "DNS over TLS" használatával, megvalósítva a TLSA (TLS Certificate Association) DNS-rekordok támogatását, valamint a DNS-szerver általi adatellenőrzésről való tájékoztatást az ügyfél számára.
- A Qt Core-hoz hozzáadva a QChronoTimer osztály, amely a std::chrono könyvtár köré épül, lehetővé téve az időkezelési műveletek pontosságának növelését. Lehetőség van a QString, QByteArray és QList méretének megváltoztatására inicializálás nélkül. A QHash támogatást kapott a QString és QStringView típusú adatok egy hash-ben történő tárolásához. A QDirListing esetében iterátoron alapuló API-t kínálunk a könyvtárak tartalmának bejárására.
- A Qt GUI lehetőséget biztosít a rendszer színbeállításainak felülírására, például sötét vagy világos mód kiválasztására, valamint a kontextusmenü megjelenítését kiváltó események beállítására.
- A Qt Sql PostgreSQL és MySQL/MariaDB adatbázis-illesztőprogramok mostantól helyesen kezelik az időt és a dátumokat, amikor a kliens és a szerveren kiválasztott különböző időzónák.
- A Qt WebEngine új osztályokat kapott: QWebEngineFrame az egyes iframe-blokkok szintjén való munkához; QWebEngineClientHints a böngészőazonosítás kezeléséhez; QWebEnginePermission a webhelyekhez kötődő hozzáférési jogok kezeléséhez.
- A Qt Widgets javította a widgetek megjelenítését nagy sűrűségű (high-DPI) képernyőkön.
- A QDoc dokumentációgeneráló C API-ról C++ API-ra lett átállítva, és mostantól legalább Clang 17 szükséges a működéséhez. Új parancsok kerültek hozzáadásra, például "\keyword" és "\nativetype".
- A LTS kiadás stabilitásának és teljesítményének növelése érdekében több mint 500 javítást és optimalizálást végeztek el.
Forrás: opennet.ru




