Cross-Plattform-Entwicklung: Qt 6.1 schließt zum Modulumfang von Qt 5.x auf

Die Ergänzung um acht Module soll die Migration von Qt 5 auf Qt 6 vereinfachen, aber zahlreiche weitere sind erst für Qt 6.2 geplant.

Lesezeit: 4 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 36 Beiträge

(Bild: Andrey Suslov/Shutterstock.com)

Von
  • Rainald Menge-Sonnentag

Gut zwei Monate nach der ersten Beta ist nun das fertige Release von Qt 6.1 erschienen. Im Fokus stehen vor allem Ergänzung, um auf den Umfang von Qt 5.x aufzuschließen. Die Qt Company hat insgesamt acht Module portiert, die in Qt 6.0 fehlten. Gleichzeitig hat sie bereits in Qt 6 übernommene Module erweitert und die APIs von Qt Core überarbeitet.

Das Release bringt mit Qt Charts und Qt Data Visualization zwei Komponenten zur Visualisierung von Daten mit. Allerdings können beide Module noch nicht den vollen Umfang des neuen Rendering Hardware Interface (RHI) nutzen. Letzteres ist die neu eingeführte allgemeine Abstraktionsebene für 3D-Grafik, die anders als Qt 5 nicht nur eine Anbindung an OpenGL, sondern zusätzlich an Vulkan, Metal und Direct 3D bietet.

Die nun portierten Visualisierungsmodule setzen jedoch laut der Übersicht im Qt-Wiki zunächst ausschließlich auf OpenGL für die Grafikbeschleunigung. Für Qt Data Visualization muss dazu die Umgebungsvariable QSG_RHI_BACKEND den Wert opengl haben. Analog dazu stellt Qt Quick Qt-Charts-Elemente nur dar, wenn OpenGL als Renderer ausgewählt ist.

Daneben bringt Qt 6.1 die aus 5.x portierten Module Qt Lottie, Qt Virtual Keyboard und Qt Device Utilities mit, wobei Letzteres derzeit auf Netzwerkfunktionen beschränkt ist. Das Paket Qt State Machines für endliche Automaten fasst die bisher separaten Module Qt StateMachine und Qt SCXML zusammen. Mit Letzterem lassen sich in State Chart XML (SCXML) definierte Zustandsautomaten in Qt-Anwendungen einbetten.

Das ebenfalls portierte Active Qt bietet eine Anbindung an ActiveX und COM unter Windows. Qt-Anwendungen können darüber sowohl auf andere ActiveX Controls und COM-Objekte zugreifen als auch als COM-Server eigene Objekte bereitstellen. Schließlich dient Graphical Effects als Kompatibilitätsmodul, das beim Portieren auf Qt 6 helfen soll.

Heise-Konferenz zu Qt 6

Am 23. Juni findet die betterCode() Qt 2021 statt, eine Online-Konferenz zu Qt 6. Im Fokus stehen zum einen die Neuerungen der Hauptversionen und zum anderen der mitunter steile Migrationspfad. Die Vorträge sollen unter anderem bei der Entscheidung helfen, wie und wann eine Migration von Qt-5-Projekten auf die neue Hauptversion sinnvoll ist.

Die Keynote hält der Chief Maintainer des Qt-Projekts und CTO der Qt Company Lars Knoll. Er wird über die Ziele bei der Entwicklung von Qt 6 berichten und einen Ausblick auf die Releases ab Qt 6.2 geben.

Im Rahmen der Roadmap für 2021 hat die Qt Company angekündigt, dass Qt 6.2 fünfzehn weitere Libraries mitbringen soll: Qt Bluetooth, Qt Multimedia, Qt Positioning, Qt Quick Dialogs, Qt Remote Objects, Qt Sensors, Qt SerialBus, Qt SerialPort, Qt WebChannel, Qt WebEngine, Qt WebSockets, Qt WebView, Qt NFC, Qt Application Manager und das ehemals QT IVI genannte Qt Interface Framework. Die Version 6.2 ist für Herbst geplant und soll gleichzeitig das erste LTS-Release (Long-term Support) sein, allerdings wie bereits Qt 5.15 nur für die kommerzielle Variante.

Neben den neuen Modulen gibt es einige Ergänzungen in Qt Core. Unter anderem lassen sich die Methoden removeIf() und erase_if() neuerdings unter bestimmten Voraussetzungen für QHash, QMap, QSet, QString, QByteArray, QList und QVarLengthArray verwenden. Daneben bringt der Kern des Cross-Plattform-Frameworks Erweiterungen für QFuture und die QStringView-API mit.

Außerdem schützen die Funktionen qAddOverflow(), qSubOverflow() und qMulOverflow() for einem arithmetischen Überlauf beim Addieren, Subtrahieren beziehungsweise Multiplizieren.

Auch bei den bereits in Qt 6 vorhandenen Modulen sind einige Ergänzungen zu vermelden. So bietet die Klasse QTextDocument Getter und Setter für die neue Klasse QUrlResourceProvider. Die Erreichbarkeit im Netzwerk lässt sich über die neue Klasse QNetworkInformation in Qt Network abrufen.

Weitere Neuerungen in Qt 6.1 lassen sich dem Qt-Blog und dem Wikieintrag zur aktuellen Version entnehmen. In Kürze soll eine aktualisierte Version von Qt for Python erscheinen, die alle in Qt 6.1 ergänzten Module enthält und darüber hinaus eine erweiterte Toolanbindung mitbringen soll. Sowohl das kommerzielle Release als auch die Open-Source-Variante von Qt 6.1 lassen sich über die Download-Seite herunterladen.

(rme)