Qt Company har udgivet Qt 6.7-frameworket, som fortsætter arbejdet med at stabilisere og udvide funktionaliteten af Qt 6-grenen. Qt 6.7 understøtter platforme Windows 10+, macOS 12 +, Linux (Ubuntu 22.04, openSUSE 15.5, SUSE 15 SP5, RHEL 8.8/9.2, Debian 11.6), iOS 16+, Android 8+ (API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS og QNX. Kildekoden til Qt-komponenterne er licenseret under LGPLv3- og GPLv2-licenserne.
Større ændringer i Qt 6.7:
- Forbedret understøttelse af brug af kode, der bruger elementer fra C++20-standarden. Tilføjet Qt::{strong,weak,partial}_ordering-klasser med implementeringer af std::*_ordering-typer, der er kompatible med C++17-specifikationen, samt makroer, der udvides til trevejs-sammenligningsoperatoren "", når de bygges af compilere, der understøtter C++20 (hvis compileren kun understøtter C++17, bruger makroerne almindelige operatorer).
Muligheden for at bruge std::span-klasseskabelonen til at repræsentere en kontinuerlig sekvens af objekter er blevet introduceret, og denne er erstattet af QSpan-klassen til systemer med C++17. Arbejdet med at implementere understøttelse af std::chrono-biblioteket i forskellige Qt API'er er fortsat. For eksempel beskrives timeouts i Qt Network API'en nu ved hjælp af std::chrono-typer og er angivet som literaler, såsom "5s" for at betegne 5 sekunder.
- Udviklingen af det eksperimentelle Qt Graphs-modul, designet til at konstruere forskellige typer grafer og visualisere store samlinger af hurtigt skiftende data, er fortsat. Modulet udvikles som en universel erstatning for det gamle Qt DataVisualization-modul, som er knyttet til OpenGL, og Qt Charts-modulet. Det nye modul bruger Qt Quick 3D og RHI (Rendering Hardware Interface) renderingsmotoren, som understøtter forskellige 3D API'er (OpenGL, Vulkan, Metal og Direct 3D). Ud over 3D-visualisering tilføjer den nye version understøttelse af XNUMXD-kage- og linjegrafer samt scatter-plot. Integration med animationsværktøjer og effekter tilgængelige i Qt Quick er blevet leveret. Tilføjet støtte til temaer. Arkitekturen er blevet moderniseret, hvilket har reduceret antallet af hukommelsesallokeringsoperationer.

- Nye klasser QHttpHeaders, QNetworkRequestFactory, QRestAccessManager og QRestReply er blevet tilføjet til udvikling af klientapplikationer, der bruger HTTP-baserede API'er og REST-arkitekturen (REpresentational State Transfer).
- Qt GRPC-modulet er blevet udvidet for at give adgang til gRPC-tjenester. Qt gRPC er blevet opdateret med nye klasser til klient-, server- og bidirektionelle streamingkald, hvilket muliggør automatisk meddelelsesudveksling, når værdier ændres. En Interceptor API er blevet introduceret til at tilknytte callback-handlere til udvalgte gRPC-meddelelser, som f.eks. kan bruges til at organisere logging eller caching.
- Qt Protobuf-modulet, designet til at serialisere Qt-klasser ved hjælp af Protocol Buffer-protokollen, er blevet opdateret til at understøtte serialisering til eller fra JSON.
- Qt SVG-vektorgrafikmodulet er blevet opdateret til at understøtte SVG 1.1- og 2.0-elementer, som almindeligvis bruges i SVG-billeder i praksis ( , , , Og ), som tillader visning af de fleste SVG-filer. For dem, der har brug for fuld understøttelse af SVG 2.0, foreslås det at bruge Qt WebEngine-modulet. Svgtoqml-værktøjet er blevet tilføjet for at konvertere SVG til QML til import af vektorgrafik direkte til Qt Quick-scenegrafen. Muligheden for at bruge Qt Quick Shapes-modulet til kurvegengivelse i høj kvalitet ved hjælp af en fragmentshader er blevet stabiliseret.
- Tilføjet understøttelse af variable skrifttyper, hvor tykkelse, bredde og andre stilistiske egenskaber ved glyffen kan ændres vilkårligt. Tilføjet understøttelse af ikonbiblioteker. Når QIcon::fromTheme-kaldet bruges, implementeres muligheden for at matche ikonnavnet med et symbol i ikonbiblioteket.
- Muligheden for at integrere native vinduer til den aktuelle platform i en Qt Quick-scene er tilgængelig, hvilket giver dig mulighed for at bruge grænsefladeelementer leveret af platformen i en Qt Quick-baseret grænseflade. For eksempel kan du integrere AppKit MapView eller Windows Medieafspiller.

- Tilføjet understøttelse for tilføjelse af gengivelseskode til Qt Quick eller Qt Widgets-baserede applikationer, der bruger enhver af Qts understøttede grafik-API'er (Vulkan, OpenGL, Direct3D, Metal). Tilføjelse sker ved hjælp af klasserne QRhiQuickItem og QRhiWidget.
- Fuld platformsupport leveres macOS 14, iOS 17, Windows 11 23H2, Android 14, RHEL 9.2, openSUSE 15.5, SUSE Linux Enterprise Server 15. Tilføjede assembleringer til Windows, kompileret ved hjælp af MinGW-værktøjskæden baseret på LLVM. Forudbyggede versioner til ARM-arkitekturen er blevet tilføjet (f.eks. Windows и Linux), for VxWorks 7-platformen og for QNX 7.1.
- Boot2Qt-stakken er blevet opdateret og kan bruges til at skabe opstartbare mobilsystemer med et Qt- og QML-baseret miljø. Systemmiljøet i Boot2Qt er blevet opdateret til Yocto 4.3 platformen.
- Nye eksempelapplikationer er blevet tilføjet. Lightning Viewer-eksemplet bruger Qt Location og Qt Quick Controls til at visualisere lyndata på et kort. Den nye OSM Buildings-demo bruger Qt Quick 3D, Qt Positioning og Qt Network til at oprette et 3D-kort over bygninger baseret på OpenStreetMap-information. Virtual Assistant-eksemplet demonstrerer mulighederne for at arbejde med 3D-animation. Volumetrisk rendering-eksemplet viser, hvordan man bruger 3D-teksturer i Qt Quick 3D til volumetrisk raytracing. StocQt-eksemplet, som bruger Qt Graphs til at vise aktiekursdata, er blevet fuldstændig omskrevet.

Derudover er det værd at bemærke udgivelsen af Qt Creator 13.0, et integreret udviklingsmiljø til oprettelse af applikationer på tværs af platforme ved hjælp af Qt-biblioteket. Det understøtter både klassisk C++-programudvikling og brugen af QML, et sprog, der bruger JavaScript til at definere scripts og CSS-lignende blokke til at definere strukturen og parametrene for grænsefladeelementer. Brugsklare builds er tilgængelige for Linux, Windows og macOS.
I den nye version:
- Tilføjede offline- og onlineinstallationsprogrammer til ARM-systemer med Linux.
- Velkommen til Qt Creator-grænsefladen er blevet opdateret til at understøtte mørke og lyse temaer.

- Forbedret grænseflade til at flytte paneler brugt i fejlretningstilstand og widget-oprettelse (Widget Designer). Tilføjet støtte til midlertidig sammenklapning af lodrette paneler. Det er nu muligt frit at flytte paneler efter deres titel uden først at deaktivere fastgørelse.

- Tilføjet support til oprettelse, implementering, kørsel og fejlretning af applikationer til enheder, der bruger Qt Application Manager (til Qt 6 og CMake-baserede applikationer).
- Tilføjet delvis understøttelse af iOS 17.
- Standardbyggemappe er blevet ændret til at bruge undermappen "build" i projektkoden. Du kan ændre byggemappen ved hjælp af indstillingen "Præferencer > Byg og kørsel > Standardbyggeegenskaber > Standardbyggemappe".
- En "Vanished targets" sektion er blevet tilføjet til projekttilstanden, som viser kits (bindinger til forskellige byggeværktøjer og Qt-versioner), som ikke længere er tilgængelige, og giver mulighed for at oprette en erstatning eller bruge et andet eksisterende kit, når du bygger, implementerer og kører.
- Muligheden for at oprette kits til Python-projekter er blevet tilgængelig (for at vælge en anden version af fortolkeren).
- Tilføjet muligheden for at bruge servere LSP (Language Server Protocol) til YAML, JSON og Bash.
- Kodeeditoren understøtter navigation fra QML-komponenter til deres tilhørende C++-kode.
- ClangFormat-indstillingerne er blevet omorganiseret. En teksteditor med syntakskontrol er tilvejebragt for at ændre dine egne indstillinger.

Kilde: opennet.ru






