A Qt Company közzétette a Qt 6.7 keretrendszer kiadását, amelyben továbbra is folyik a munka a Qt 6 ág funkcionalitásának stabilizálásán és növelésén. A Qt 6.7 támogatja a Windows 10+, macOS 12+, Linux (Ubuntu 22.04, openSUSE) platformokat 15.5, SUSE 15 SP5, RHEL 8.8 /9.2, Debian 11.6, iOS 16+, Android 8+ (API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS és QNX. A Qt komponensek forráskódja az LGPLv3 és GPLv2 licencek alatt található.
Főbb változások a Qt 6.7-ben:
- Továbbfejlesztett támogatás a C++20 szabvány elemeit használó kód használatához. Qt::{erős,gyenge,részleges_sorrendező osztályok hozzáadva az std::*_ordering típusok megvalósításával, amelyek kompatibilisek a C++17 specifikációval, valamint olyan makrók, amelyek a fordítók által lefordított háromutas összehasonlító operátorba "" bővülnek amelyek támogatják a C++ 20-at (ha a fordító csak a C++17-et támogatja, a makrók normál operátorokat használnak).
Használható az std::span osztálysablon egy folytonos objektumsorozat ábrázolására, amelyet a QSpan osztály helyettesít a C++17-es rendszerek esetében. Folytatódott a munka az std::chrono könyvtár támogatásának megvalósításán a különböző Qt API-kban. Például a Qt Network API-ban az időtúllépések most std::chrono típusokkal vannak leírva, és literálok formájában vannak megadva, például "5s" az 5 másodperc jelzésére.
- Folytatódott a kísérleti Qt Graphs modul fejlesztése, amelyet különféle típusú grafikonok készítésére és gyorsan változó adatok nagy gyűjteményeinek megjelenítésére terveztek. A modult a régi, OpenGL alapú Qt DataVisualization modul és a Qt Charts modul univerzális helyettesítésére fejlesztik. Az új modul a Qt Quick 3D-t és az RHI (Rendering Hardware Interface) renderelőmotort használja, amely különféle 3D API-kat (OpenGL, Vulkan, Metal és Direct 3D) támogat. Az új verzió a 3D-s vizualizáció mellett támogatja a kétdimenziós kör- és vonaldiagramokat, valamint a szórásdiagramokat is. A Qt Quickben elérhető animációs eszközökkel és effektusokkal való integráció biztosított. Támogatás hozzáadva a témákhoz. Az architektúrát modernizálták, hogy csökkentsék a memóriafoglalási műveletek számát.
- Új QHttpHeaders, QNetworkRequestFactory, QRestAccessManager és QRestReply osztályok kerültek hozzáadásra a HTTP-alapú API-kat és REST (REpresentational State Transfer) architektúrát használó kliens alkalmazások fejlesztéséhez.
- A Qt GRPC modul képességei kibővültek, lehetővé téve a hozzáférést a gRPC szolgáltatásokhoz. A Qt gRPC új osztályokat adott a kliensoldali, szerveroldali és kétirányú streaming hívásokhoz, amelyek lehetővé teszik az üzenetek automatikus cseréjét, ha az értékek megváltoznak. Javasoltak egy Interceptor API-t a kiválasztott gRPC-üzenetek visszahívási kezelőinek csatolására, amelyek felhasználhatók például naplózás vagy gyorsítótárazás megszervezésére.
- A Qt Protobuf modul, amelyet a Qt osztályok Protocol Buffer protokoll használatával történő szerializálására terveztek, hozzáadta a JSON formátumba vagy onnan történő szerializálás lehetőségét.
- A Qt SVG vektorgrafikus modul támogatja az SVG 1.1 és 2.0 elemeket, amelyeket a gyakorlatban gyakran használnak az SVG képekben ( , , , És ), amely lehetővé teszi a legtöbb SVG-fájl megjelenítését. Azok számára, akiknek az SVG 2.0 teljes támogatására van szükségük, javasoljuk a Qt WebEngine modul használatát. Hozzáadtuk az svgtoqml segédprogramot, amellyel az SVG-t QML-re konvertálhatjuk, és a vektorgrafikákat közvetlenül a Qt Quick jelenetgrafikonba importálhatjuk. Stabilizálódott a Qt Quick Shapes modul használatának képessége a görbék kiváló minőségű megrajzolásához egy fragmens árnyékoló segítségével.
- Hozzáadott támogatás a változó betűtípusokhoz, amelyekben a karakterjel vastagsága, szélessége és egyéb stilisztikai jellemzői tetszőlegesen változhatnak. Hozzáadott támogatás az ikonkönyvtárak számára. A QIcon::fromTheme hívás használatakor lehetőség van az ikon nevének egy szimbólummal való egyeztetésére az ikonkönyvtárban.
- Lehetőség van az aktuális platformon natív ablakok beágyazására a Qt Quick szcénába, ami lehetővé teszi a platform által biztosított felületelemek használatát egy Qt Quick alapú felületen, például AppKit MapView vagy Windows Media Player beágyazását.
- Támogatás hozzáadva a Qt Quick vagy Qt Widgetek alapú alkalmazásokhoz való megjelenítési kód hozzáadásához, a Qt által támogatott bármely grafikus API használatával (Vulkan, OpenGL, Direct3D, Metal). A hozzáadása a QRhiQuickItem és QRhiWidget osztályok használatával történik.
- Teljes támogatás biztosított a macOS 14, iOS 17, Windows 11 23H2, Android 14, RHEL 9.2, openSUSE 15.5, SUSE Linux Enterprise Server 15 platformokhoz. A Windows rendszerhez készült összeállítások hozzáadva, az LLVM alapú MinGW eszközkészlettel lettek összeállítva. Hozzáadott előnézeti buildek az ARM architektúrához (Windows és Linux), a VxWorks 7 platformhoz és a QNX 7.1-hez.
- Frissítésre került a Boot2Qt verem, amivel Qt és QML alapú környezettel indítható mobilrendszereket lehet létrehozni. A Boot2Qt rendszerkörnyezete a Yocto 4.3 platformra frissült.
- Új mintaalkalmazások kerültek hozzáadásra. Példa a Lightning Viewerre a Qt Location és Qt Quick Controls használatával a zivataradatok térképen való megjelenítéséhez. Új OSM épületek bemutatója a Qt Quick 3D, a Qt Positioning és a Qt Network segítségével 3D épülettérkép létrehozásához az OpenStreetMap információi alapján. A Virtuális asszisztens példa bemutatja a 3D animációval való munkavégzés képességeit. A Volumetrikus renderelési példa bemutatja, hogyan lehet 3D textúrákat használni a Qt Quick 3D-ben térfogati sugárkövetéshez. A StocQt példát teljesen újratervezték, Qt Graphs segítségével jelenítik meg a tőzsdei adatokat.
Emellett megjegyezzük a Qt Creator 13.0 integrált fejlesztői környezet megjelentetését, amelyet többplatformos alkalmazások létrehozására terveztek a Qt könyvtár használatával. Támogatja mind a klasszikus programok fejlesztését C++ nyelven, mind a QML nyelv használatát, amelyben a JavaScript segítségével definiálják a szkripteket, az interfész elemek szerkezetét és paramétereit pedig CSS-szerű blokkok határozzák meg. Kész összeállítások készültek Linux, Windows és MacOS számára.
Az új verzióban:
- Offline és online telepítők hozzáadva ARM-rendszerekhez Linux alatt.
- Az Üdvözöljük a Qt Creator felületén frissítettük a sötét és világos témák támogatását.
- Továbbfejlesztett felület a hibakeresési módban használt panelek mozgatásához és widgetek létrehozásához (Widget Designer). Hozzáadott támogatás a függőleges panelek ideiglenes összecsukásához. Lehetőség van a panelek szabadon mozgatására a fejlécüknél fogva anélkül, hogy először ki kellene őket oldani.
- Hozzáadott támogatás az alkalmazások létrehozásához, telepítéséhez, futtatásához és hibakereséséhez a Qt Application Managert használó eszközökön (Qt 6 és CMake alapú alkalmazásokhoz).
- Az iOS 17 részleges támogatása hozzáadva.
- Módosította az alapértelmezett build könyvtárat, hogy a "build" alkönyvtárat használja a projekt kódjában. Az összeállítási könyvtárat a „Beállítások > Build & Run > Default Build Properties > Default build directory” beállítással módosíthatja.
- Projekt módban hozzáadásra került egy „Eltűnt célpontok” rész, amely megjeleníti a már nem elérhető készleteket (hivatkozásokat a különböző összeállítási eszközökre és a Qt verzióira), és lehetőséget ad csere létrehozására vagy használatára építéskor, telepítéskor és egy másik meglévő készlet futtatása.
- Lehetőség van Python nyelvű projektekhez készletek létrehozására (az interpreter másik verziójának kiválasztásához).
- Hozzáadtuk az LSP (Language Server Protocol) szerverek használatának lehetőségét a YAML, JSON és Bash számára.
- A kódszerkesztő támogatja a QML komponensek közötti navigálást a hozzájuk tartozó C++ kódra.
- A ClangFormat beállításait átszervezték. Egy szintaxis-ellenőrzéssel rendelkező szövegszerkesztővel módosíthatja saját beállításait.
Forrás: opennet.ru