Qt 6.10 moderniserer utvikling på tvers av plattformer med forbedret tilgjengelighet, integrerte data og vektoranimasjon.

  • Forbedret tilgjengelighet og høy kontrast innebygd i Qt-stiler
  • Raskere brukergrensesnitt: FlexboxLayout, SVG/Lottie-animasjoner og SearchField
  • Enklere data: QRangeModel, Synchronizer, TreeModel og sortering/filtrering i QML
  • Oppdaterte plattformer: Android 15/16, macOS/iOS 26, WebView2 og PipeWire

Qt 6.10

Qt 6.10 kommer Fullpakket med forbedringer for apputviklere og enhetsbyggere, med nye funksjoner som spenner fra tilgjengelighet og grensesnittdesign til lyd, grafikk og plattformstøtte. Det er en versjon som gjør hverdagen enklere enten du jobber i QML og Qt Quick eller fortsetter med C++ og Qt Widgets.

Utover overskriftene er det endringer som direkte påvirker produktiviteten: et flexbox-lignende layoutsystem i Qt Quick, utvidet vektoranimasjon (SVG og Lottie), nye kontroller som SearchField og mye renere måter å koble C++-data til QML-grensesnitt. Det er også fremskritt innen Android, macOS/iOS, Windows og Linux, og en god håndfull små, flotte detaljer i moduler som Qt Graphs, Qt Quick 3D, Qt Multimedia eller Qt Core.

Tilgjengelighet og høy kontrast i Qt 6.10

Tilgjengelighet tar et betydelig sprang: Innebygde Qt-stiler respekterer nå Justerer automatisk systemets høykontrastinnstillinger på datamaskin og mobil. Dette bidrar til å opprettholde visuell konsistens med resten av miljøet og overholde forskrifter uten ekstra arbeid.

Måten Qt-widgeter og Qt Quick-kontroller eksponeres for hjelpeteknologier (f.eks. skjermlesere) har blitt revidert, med en bedre integrasjon med underliggende plattformerFremgangen er spesielt bemerkelsesverdig i WebAssembly, og mange av disse forbedringene vil også komme til LTS-grener i kommende vedlikeholdsoppdateringer.

Qt 6.10 bygger grensesnitt raskere

Qt Quick fortsetter å utvikle seg for å iterere raskere, redusere tilpasset kode og oppnå moderne, responsive brukergrensesnitt. 6.10 debuterer en nytt flexbox-oppsett, støtten for vektoranimasjon utvides, og en brukervennlig SearchField-kontroll vises.

Flexbox-oppsett for Qt Quick

FlexboxLayout er innlemmet som en "teknisk forhåndsvisning", et system inspirert av CSS' fleksible bokslayout som integreres med Qt Quicks layoutmekanisme (inkludert tilknyttede egenskaper for konfigurer oppførselen til hvert elementDen er designet for å lage responsive grensesnitt på få minutter og opprettholde solid ytelse under kjøretid.

Qt tilbyr allerede flere oppsett for adaptive grensesnitt, men med FlexboxLayout er det enklere å tilpasse seg forskjellige skjermstørrelser/aspekter og redusere variasjoner i tekstlengde på grunn av internasjonalisering eller typografiske preferanser.

Animert vektorgrafikk: SVG og Lottie

Etter flere versjoner som forsterket støtten for vektorgrafikk (forbedring av Qt Quick Scene Graph, Qt Quick Shapes og SVG), er det lagt til i 6.10 støtte for vektoranimasjoner i både SVG- og Lottie-bilder. Qt Lottie-modulen utvider utvalget av støttede moderne filer, og takket være VectorImage er det mulig å gjengi Lottie som en skalerbar, maskinvareakselerert vektor.

I tillegg er lottietoqml-verktøyet integrert for å konvertere Lottie-filer til Qt Quick-scener direkte i QML, som et supplement til flyten som svgtoqml startet.

Ny Qt-hurtigkontroll: Søkefelt

Søkefelt er et spesialisert inndatafelt for søk, med innebygde stiler og integrert utseende på store plattformerDen viser relevante forslag i en filtrert rullegardinmeny mens du skriver, og drives av modeller du kan levere via standard QML-databaner.

Denne delen passer spesielt godt med forbedringene i datautveksling mellom C++-kode og Qt Quick UI-er: den nye funksjonen i 6.10 gjør enklere å koble til C++-modeller med kontroller som SearchField uten å ty til detaljerte maler.

Integrer dataene dine i QML med mindre friksjon takket være Qt 6.10

Qt tilbyr flere mekanismer for å koble C++-logikk med QML-presentasjon (singletoner, QAbstractItemModel, kontekstegenskaper, QObject-objekter osv.), og verktøy som QtCreator 8Likevel kan det kreves at man bygger en fullstendig toveisintegrasjon for mye repeterende kodeI Qt 6.10 er den barrieren senket med nye API-er og typer designet for ekte arbeid.

QRangeModell

QRangeModel ankommer, en lett implementering av QAbstractItemModel for å eksponere C++-områder som std::vector, std::array eller en hvilken som helst itererbar container direkte til visninger i Widgets og QML/Qt Quick-visninger. Den fungerer med enkle verdier (f.eks. int) og mer komplekse typer (Q_GADGET eller std::tuple), og genererer passende roller uten å skrive modellen for hånd.

Hvis du bruker dingser, eksponerer QRangeModel hver egenskap som en navngitt rolle, slik at QML-delegater kan lenke med nødvendige egenskaper på en typeskrevet måte. I praksis eliminerer du behovet for manuell rollehåndtering eller misbruk av kontekstegenskaper, og alt passer sammen med kompilert QML.

delegateModelAccess: direkte skriving fra delegaten

Frem til nå trengte man vanligvis modellobjektet eller kontekstegenskaper for å skrive til modellen fra en delegat. Med 6.10 trenger man bare å aktivere delegateModelAccess i ReadWrite-modus slik at delegater kan skrive gjennom nødvendige egenskaper naturlig.

Den nye funksjonaliteten fungerer på alle Qt-visninger: Instantiator, Repeater, ListView, GridView, TableView, TreeView, MapItemView og Repeater3D. Skrive redigerbare brukergrensesnitt Dette gjør det mer forutsigbart og i samsvar med god QML-praksis.

Synkroniser: synkronisering av flere egenskaper

Synkronisering-elementet, som har vært svært etterspurt i årevis, debuterer for å sikre at flere eiendommer deler samme verdi når det var mulig, uten å bryte noen lenker i noen av dem. Bindinger pleide å bli kombinert med en signalbehandler, og dette fungerte best for kontroller implementert i C++.

Med Synchronizer reduseres alt til ett enkelt element som støtter n egenskaper og både C++ og QML-mål. Den er tilgjengelig i Qt.labs.synchronizer-modulen og kommer som en teknisk forhåndsvisning.

Tremodell i QML

Å eksponere tredata til Qt Quick pleide å involvere implementering av QAbstractItemModel. QRangeModel forenkler dette fra C++, men noen ganger vil du deklarer treet direkte i QML for prototyper eller små datasett. Det er her QML TreeModel-typen kommer inn i bildet.

Med TreeModel definerer du noder med JSON-stil array og ordbokssyntaks, tilordner nøkkelverdipar til hvert element og bruker dem i visninger som TreeView uten å skrive kompleks infrastruktur. Lar deg iterere brukergrensesnittet i høy hastighet før du porterer strukturen til C++ om nødvendig.

SortFilterProxyModel i QML

På C++-siden har vi brukt QSortFilterProxyModel i årevis. Qt 6.10 bringer sin deklarative motpart til QML for sortere og filtrere data med et bindingsvennlig API. Den inkluderer rollebaserte sorterere (som RoleSorter) og reaktive funksjonsfiltre (som du kan overstyre) for å holde lister og tabeller oppdatert.

Tanken er at du kan sette opp sorterings- og filtreringspipeliner direkte i QML, med konsis og uttrykksfull kode, uten at det går på bekostning av ytelse eller klarhet.

Hold produktet ditt moderne med Qt 6.10

Systemer utvikler seg, og brukere forventer at appene deres skal fungere på de nyeste enhetene og versjonene. I 6.10 finnes det Spennende plattformforbedringer som legger til rette for denne kontinuiteten, som vist av Qt-avledede prosjekter som LXQt 2.0.

Android: Nåværende støtte og nye verktøy

Qt 6.10 annonserer offisiell støtte for Android 15 og 16, med justeringer av byggesystemet og støtte for sider på 16 KB. Dette lar deg målrettet gjeldende maskinvare uten overraskelser, samtidig som stabilitet og ytelse opprettholdes.

Qt Jenny 1.0 lanseres, en kodegenerator som genererer JNI-lim fra kommenterte Java-klasser. Den består av en kompilator og en kommenteringsprosessor, som genererer Qt C++ API-er basert på QJniObject for å få tilgang til native tjenester som BatteryManager, PowerManager eller AudioManager. forenkler til og med varsler, som ofte er komplekse via JNI. Den er tilgjengelig på Maven Central og kommer med eksempler i Qt Creator og online dokumentasjon.

Håndteringen av velkomstskjermen har også blitt polert siden Android 12, og unngår doble velkomstskjermerDen anbefalte tilnærmingen er å bruke en dedikert SplashActivity, angi temaer med gjennomskinnelighet og starte Qt-aktiviteten når Android er klar, for å oppnå en sømløs overgang.

macOS og iOS 26

Første mindre utgivelse siden macOS 26 «Tahoe» ble utgitt. Den nye Liquid Glass-designen og endringer i gjengivelsesarkitekturen ga utfordringer som Qt har løst. tilby full støtteMange forbedringer vil bli tilbakeført til LTS-grener (6.8 og 6.5) i kommende oppdateringer.

Windows: Qt WebView med WebView2

Qt WebView har en WebView2-basert implementering for å bruke Microsoft Edge som en motor. På denne måten kan du legg inn nettinnhold med systemets innebygde nettleser og distribuer på Windows uten å dra Qt WebEngine, noe som reduserer fotavtrykket.

Linux og multimedia

Qt Multimedia legger til innebygd backend for PipeWire, med forbedret latens og kontroll for innholdsbehandling og maskinvare (f.eks. applikasjoner som Mixxx 2.5), i tillegg til tynnere støtte i containeriserte miljøerLydkompensasjon er lagt til for å opprettholde kvaliteten når sporene øker eller senkes.

Innebygd maskinvare

På enheter bruker Boot to Qt Yocto 5.2 "Walnascar" og vises tilpasninger for Ezurio nitrogenplaterMålet: å få fart på tiden til markedet for moderne maskinvare, med oppdaterte stakker.

Andre bemerkelsesverdige forbedringer i Qt 6.10

Qt Quick 3D tillater nå Bak lyskart med letthet for å øke kvaliteten med høy ytelse, og kjøre partikkeleffekter i revers, nyttig for å simulere regn eller snø som påvirker modellene dine.

Qt Graphs legger til en ny fylt overflate, bedre støtte for flere akser, tilpassbar 2D z-rekkefølge og muligheten til å gjengi et utsnitt av en 3D-grafikk et utskrivbart bilde. En ny grafikk med fylt overflate er også lagt til i katalogen.

I Qt Widgets, opprett tilpassede delegater Det er enklere og har mer detaljert dra-og-slipp-kontroll i elementvisninger. Oppsett lar deg konfigurere størrelsesbegrensninger individuelt.

Det virtuelle tastaturet inkluderer nå Latvisk distribusjon, noe som utvider språkdekningen. Og i Qt Core har API-er blitt forbedret for å jobbe med språkinnstillinger, XML-dokumenter og fortsettelsesstrenger.

I Qt GUI legger QRhi-backend til opplisting av 3D-adaptere når du bruker Direct3D 11/12 eller Vulkan, noe som gjør det enklere å velge GPU-er på maskiner med flere kort.

Har blitt introdusert ytelsesforbedringer i QGrpcHttp2Channel, noe som er til fordel for applikasjoner som bruker gRPC over HTTP/2 i krevende scenarier.

Mer om Qt 6.10

Wayland mottar økthåndtering, en nøkkelkomponent for moderne skrivebordsintegrasjoner, og nyttige grafiske tilbakestillingsvarsler er lagt til for komponenter som kompositorer (f.eks. KWin).

Qt WebEngine har støtte for Chromium-utvidelser, en langvarig etterspørsel fra brukere av QtWebEngine-baserte nettlesere. Dette åpner døren for at prosjekter som Falkon kan bruke det samme utvidelsesøkosystemet som du allerede bruker i Chromium.

I tillegg til direkte Lottie-støtte i VectorImage, verktøyet lottietoqml forenkler Ta animasjoner inn i QML-verdenen, og utvid det kreative arsenalet ditt uten å ofre ytelsen.

Qt 6.10 er et viktig skritt mot å utvikle mer tilgjengelige og moderne grensesnitt, integrere C++-data i QML med mindre friksjon, og distribuere sømløst til de nyeste plattformene – alt samtidig som det legger til praktisk multimedia, grafikk og kjernefunksjoner som gjenspeiles i både ytelse og sluttproduktkvalitet. Hvis du har Qt i stacken din, denne oppdateringen fortjener en plass på planen din.

qt-6
Relatert artikkel:
Qt 6.6 er allerede utgitt, og dette er nyhetene