Qt 6.10 ist ein klassisches „Framework‑Release“, das an vielen Stellen nachzieht, wo sich in den letzten Jahren Anforderungen und Best Practices geändert haben: moderneres UI‑Layouten mit Flexbox, stärkere Unterstützung für Vektoranimationen (SVG/Lottie), vereinfachte Datenanbindung zwischen C++ und QML, neue Hilfstypen für Modelle und Bindungen – und dazu ein spürbares Update bei Accessibility und Plattformintegration.
Im Folgenden ein Überblick über die wichtigsten Änderungen von Qt 6.10, auf Basis der offiziellen Release‑Informationen.
Accessibility: High Contrast und Screenreader werden ernster genommen
Qt 6.10 legt sichtbar mehr Wert auf Barrierefreiheit:
- High‑Contrast‑Mode auf allen Plattformen:
- Die eingebauten Styles orientieren sich stärker an den jeweiligen System‑Einstellungen für hohen Kontrast.
- Ziel: Qt‑Apps sollen sich optisch nahtlos in die restliche Oberfläche einfügen und dabei besser lesbar sein.
- Für dich als Entwickler bedeutet das: Ohne Codeänderung profitierst du von verbessertem Kontrast, wenn Nutzer das systemweit aktivieren.
- Bessere Integration mit Assistive Technologies:
- Qt Widgets und Qt Quick Controls wurden überarbeitet, damit Screenreader und andere Hilfsmittel sauberer angesprochen werden.
- Besonders für WebAssembly gab es Verbesserungen in der Accessibility‑Implementierung.
- Viele Änderungen fließen auch in LTS‑Branches zurück (Patch‑Releases), sofern du dort aktuell bleibst.
Unterm Strich: Qt 6.10 hilft dir bei der Einhaltung von Accessibility‑Vorgaben, ohne dass du an jeder Ecke Speziallogik schreiben musst.
Qt Quick: FlexboxLayout und moderne UI‑Bausteine
Qt Quick bleibt die Speerspitze für neue UI‑Konzepte. Mit Qt 6.10 kommen unter anderem:
FlexboxLayout (Tech Preview)
- Neues Layout‑Element
FlexboxLayoutfür Qt Quick, das sich an CSS Flexbox anlehnt. - Vorteile:
- Besseres Verhalten bei unterschiedlich großen Screens und Aspect Ratios.
- Weniger Custom‑Layoutcode für „responsive“ UIs.
- Vertraut für alle, die bereits mit Web/CSS arbeiten.
- Integration:
- Bindet sich in das bestehende Layout‑System von Qt Quick ein (attached properties etc.).
- Ist als Technologievorschau gekennzeichnet – API kann sich bis zum nächsten LTS noch ändern.
Animierte Vektorgrafiken (SVG & Lottie)
Qt 6.10 baut konsequent auf den SVG/Vektor‑Verbesserungen der vorherigen Versionen auf:
- VectorImage (aus 6.8 bekannt) wird erweitert:
- Unterstützung für animierte Vektorgrafiken in
- SVG‑Format und
- Lottie‑Format.
- Qt Lottie‑Modul:
- Deutlich verbesserte Unterstützung moderner Lottie‑Dateien.
- Lottie‑Assets können jetzt als skalierbare, hardwarebeschleunigte Vektorgrafiken direkt im Qt‑Quick‑Scenegraph gerendert werden.
Für UI‑Designer bedeutet das: Aufwendige, aber leichtgewichtige Animationswelten lassen sich direkt aus Design‑Tools (Figma/After Effects → Lottie) in Qt übernehmen.
Neuer Quick Control: SearchField
- Spezialisierter Eingabebaustein für Suchfelder.
- Bringt:
- nativen Look & Feel auf allen Plattformen (wie andere Qt Quick Controls),
- integrierte Vorschlagsliste mit Modellanbindung.
- Integration:
suggestionModelkann über die üblichen Mechanismen (QAbstractItemModel, Kontextobjekte, QML‑Modelle) befüllt werden.- Besonders interessant in Kombination mit den neuen Modell‑/Bindungswerkzeugen (siehe unten).
Einfachere Verbindung zwischen C++‑Daten und QML‑UIs
Ein klassischer Schmerzpunkt in Qt‑Projekten war die Verbindung zwischen C++‑Backend und QML‑UI. Qt 6.10 nimmt sich genau dieser Nähte an.
QRangeModel: C++‑Container direkt als Modell
QRangeModelist eine schlankeQAbstractItemModel‑Implementierung, die C++‑Ranges (z.B.std::vector,std::array, beliebige iterierbare Container) direkt als Modell zur Verfügung stellt.- Eigenschaften:
- Kann einfache Typen (int, QString, …) wie auch komplexe Typen (GADGETs,
std::tuple) abbilden. - Modellrollen werden automatisch erzeugt.
- Funktioniert gleichermaßen in Qt Widgets (Views) und in QML/Qt Quick.
- Beispiel‑Anwendung:
std::vector<int>als Liste in einer QML‑ListView,std::vector<MyGadget>als typ‑sicheres Modell in Delegates mitrequired property.
Damit entfällt für viele Anwendungsfälle das Schreiben eigener QAbstractItemModel‑Subklassen.
delegateModelAccess: Zurückschreiben in das Modell vereinfachen
Bisher war das Schreiben aus einem Delegate zurück in das Modell oft umständlich:
- Entweder über
model‑Objekte im Delegate - oder über Kontextproperties und eigene Signal‑Handler.
Mit Qt 6.10 kann eine View über delegateModelAccess: DelegateModel.ReadWrite explizit erlauben, dass required‑Properties im Delegate direkt zurück ins Modell schreiben. Das reduziert Boilerplate deutlich, insbesondere in größeren QML‑UIs.
Synchronizer: Zwei‑ und Mehrwege‑Bindungen
- Neues Element
Synchronizer(Tech Preview, ModulQt.labs.synchronizer). - Zweck:
- Mehrere Properties so synchron halten, dass sie (so weit möglich) denselben Wert haben, ohne klassische Bindungen zu „brechen“.
- Funktioniert für Kombinationen von C++‑ und QML‑Eigenschaften.
- Praxisnutzen:
- Typische „Slider ↔ Modell‑Wert“‑Szenarien lassen sich deklarativ und ohne zusätzliche Signal‑Handler abbilden.
TreeModel für QML
- Neues QML‑
TreeModel, mit dem sich Baumdaten direkt in QML deklarieren lassen. - Zielgruppe:
- Prototyping,
- kleinere Datenmengen,
- Szenarien, in denen ein kompletter C++‑Baummodell‑Layer Overkill wäre.
Zusammen genommen macht Qt 6.10 die Kante zwischen C++‑Backend und QML‑Frontend deutlich angenehmer.
Qt Graphs: FilledSurface und mehr
Qt Graphs wird auch in 6.10 weiter ausgebaut:
- Neue Diagrammtypen und Anpassungen:
- u.a. ein neuer „FilledSurface“‑Graph zur besseren Darstellung gefüllter Flächen.
- Bessere Integration in Qt Quick und die neuen Layout‑/Vektorfeatures.
Wenn du bereits mit Qt Graphs arbeitest, lohnt sich ein Blick in die konkreten Release Notes für dieses Modul.
Sonstige Verbesserungen und Plattform‑Updates
Wie bei jedem Qt‑Release gibt es eine Reihe weiterer Verbesserungen:
- Plattformintegration:
- Qt 6.10 richtet sich nach den jeweils aktuellen Versionen der großen Desktop‑, Mobile‑ und Embedded‑Plattformen (siehe Release Note und Wiki‑Seite).
- Bugfixes und Feinschliff:
- Dutzende Fehlerkorrekturen in den Untermodulen (Widgets, Quick, Network, etc.).
- Viele Details lassen sich in den detaillierten Release Notes (6.10.0–6.10.2) nachlesen.
Fazit
Qt 6.10 ist kein „großer Sprung“ im Sinne völlig neuer Konzepte, sondern ein Release, das viele typischen Alltagsbaustellen adressiert:
- Accessibility wird ernst genommen (High Contrast, Screenreader‑Integration).
- Qt Quick bekommt mit FlexboxLayout, animierten Vektorgrafiken und SearchField Werkzeuge, die aktuelle UI‑Designs besser abbilden.
- Die Verbindung zwischen C++‑Daten und QML‑UIs wird durch
QRangeModel,delegateModelAccess,SynchronizerundTreeModeldeutlich entschärft.
Wer bereits auf Qt 6.x unterwegs ist, sollte Qt 6.10 vor allem dann in Betracht ziehen, wenn:
- Accessibility und regulatorische Vorgaben eine Rolle spielen,
- moderne, animierte UIs (Vektor/Lottie) benötigt werden,
- oder die Brücke zwischen C++‑Backend und QML‑Frontend bislang viel Handarbeit erfordert.
Quellen
- Qt Blog: Qt 6.10 Released! – https://www.qt.io/blog/qt-6.10-released
- Qt Wiki: Qt 6.10 Release – https://wiki.qt.io/Qt_6.10_Release
- Qt Doku: New Features in Qt 6.10 – https://doc.qt.io/qt-6.10/whatsnew610.html