Cross-Plattform-Entwicklung: Qt 5.15 läutet den Übergang zu Qt 6 ein

Das letzte LTS-Release der 5er-Reihe von Qt abstrahiert die 3D-API und erweitert Qt Quick um 3D-Darstellung. Parallel ist Qt Design Studio 1.5 erschienen.

by

Kurz nach dem 25. Geburtstag des Qt Frameworks ist nun Version 5.15 erschienen. Das aktuelle Release ist das letzte mit Long-term Support (LTS) in der 5er-Serie und bereitet technisch den Umstieg auf die nächste Hauptversion vor. Die markantesten Änderungen finden sich im 3D-Bereich mit einer Abstraktionsschicht für Grafik-APIs jenseits von OpenGL und 3D-Inhalten für Qt Quick.

Die Änderungen, die weitgehend bereits Bestandteil der vor zwei Monaten veröffentlichten Betaversion waren, sollen den Umstieg auf Qt 6 vereinfachen, das nach den aktuellen Plänen im Dezember erscheinen soll. Einige Neuerungen für die kommende Hauptversion hat das aktuelle Release schon an Bord. Allerdings sind für Qt 6 grundlegende Änderungen vorgesehen, während Qt 5.15 rückwärtskompatibel bleibt. Von daher dürfte es gerade als LTS-Variante in zahlreichen Projekten länger im Einsatz bleiben.

Völlig losgelöst von der 3D-API

Qt verabschiedet sich mit dem aktuellen Release von der festen Verbindung zu OpenGL als 3D-Grafik-API. Das Framework bekommt stattdessen eine zusätzliche Abstraktionsschicht namens Qt Rendering Hardware Interface (RHI). Passend dazu ist der OpenGL Renderer nicht mehr fest integriert, sondern als externes Plug-in umgesetzt.

Lesen Sie auch

https://www.heise.de/imgs/18/2/9/0/0/7/9/5/25-8f1b0bcc6677221b.jpeg

Qt wird niedliche 25 Jahre alt

Eine erste Vorschauversion war bereits in Qt 5.14 enthalten, und die Schnittstelle gilt im aktuellen Release weiterhin als Technology Preview. Das RHI, das laut den Plänen der Qt Company eine "sehr zentrale Rolle" in Qt 6 spielen soll, lässt sich in Qt 5.15 über eine Umgebungsvariable aktivieren. Entwickler können damit Vulkan, Metal oder Direct3D 12 statt OpenGL als Programmierschnittstelle verwenden.

Dritte Dimension für das UI

Qt Quick spielt seit jeher eine wichtige Rolle beim Gestalten von UIs. Der Fokus lag ursprünglich darauf, Entwicklern ein Werkzeug zum Gestalten animierter UIs zu geben, die aber bisher lediglich auf zweidimensionale Grafik ausgelegt waren. Mit Qt Quick 3D lassen sich nun 3D-Szenen integrieren. Entwickler beziehungsweise Designer können die Szenen in QML (Qt Modeling Language) definieren und in Qt Quick mit den 2D-Elementen des UI verschmelzen.

https://www.heise.de/imgs/18/2/9/0/0/7/9/5/qtquick3d-demo-e517af28e13fe2a4.jpeg
Die Demo von Qt Quick 3D ermöglicht das Ausprobieren unterschiedlicher Parameter wie Texturgrößen und Modellkomplexität.(Bild: Qt Company)

Als Starthilfe hat die Qt Company eine Demo veröffentlicht, mit der sich diverse Einstellungen für die 3D-Szenen testen und als Benchmark ausführen lassen. Qt Quick 3D war ebenfalls erstmals in Qt 3.14 als Vorschau enthalten und hat im aktuellen Release keinen Preview-Status mehr. Seit der ersten Vorstellung sind unter anderem Postprocessing-Effekte und eine neue C++-API für eigene Geometrien hinzugekommen.

Strengere Regeln für die QML

Qt 6 soll laut den Mitte 2019 von Qt Chief Maintainer Lars Knoll veröffentlichten Plänen eine vollständig überarbeitete Version der Programmiersprache QML mitbringen. Erste Anpassungen zeichnen sich bereits im aktuellen Qt-Release ab.

So dürfen Komponenten neuerdings Required Properties aufweisen. Als Beispiel führt ein Blogbeitrag einen auf barrierefreien Zugang ausgerichteten Button auf, der stets einen beschreibenden Text haben muss:

Button {
required property string description
Accessible.description: description
}

Eine Anwendung, die den Button verwendet, ohne description einen String zuzuordnen, lässt sich nicht starten. Etwas milder geht das Framework mit beispielsweise über einen Loader dynamisch erstellten Komponenten um. In dem Fall löst die fehlende Property keinen Abbruch mit einer Fehlermeldung, sondern lediglich eine Runtime Warning aus.

Mittelfristig sollen die Entwicklungsumgebung Qt Creator und der Linter qmllint vor fehlenden Properties warnen. das qmllint-Werkeug erkennt bereits im aktuellen Release mehr potenzielle Probleme in QML-Code. Außerdem formatiert das Tool qmlformat QML-Dateien automatisch passend zu den QML-Coding-Conventions.

Design Studio 1.5

Parallel zu Qt 5.15 hat das Unternehmen das Qt Design Studio in Version 1.5 veröffentlicht. Das Tool zum Erstellen von UIs war Ende 2018 in Version 1.0 erschienen und soll die Zusammenarbeit zwischen Entwicklern und Designern vereinfachen.

Mit dem neuen Docking-System können Nutzer nun die Oberfläche flexibler gestalten. Auch die 3D-View für Qt Quick 3D ist vollständig überarbeitet und zeigt unter anderem die Art der Lichtquellen an. Außerdem hat die Qt Company die Steuerung der 3D-Editor-Kamera überarbeitet, um sie intuitiver zu gestalten.

https://www.heise.de/imgs/18/2/9/0/0/7/9/5/flowview-e31295cc76ae1726.jpeg
Mit dem Flow View Editor lassen sich Abläufe in der Anwendung visuell definieren.(Bild: Qt Company)

Anzeige

https://www.heise.de/developer/imgs/06/2/9/0/0/5/8/9/ARM_Cores-fe0b0d651108111c.jpg

Nennenswert ist zudem die Flow View beziehungsweise der Flow View Editor, mit dem sich Abläufe innerhalb der Applikation wie Transition Effects und Entscheidungen darstellen und bearbeiten lassen. Qt Design Studio 1.5 hat dafür ein neues Modul namens FlowView an Bord, das jedoch noch kein offizieller Bestandteil des Qt Frameworks ist.

Weitere Details zu Qt 5.15 lassen sich ebenso dem Qt-Blog entnehmen wie die Neuerungen in Qt Design Studio 1.5. Qt 5.15 ist nicht nur das letzte LTS-Release der 5er-Serie, sondern gleichzeitig das erste, das nur kommerziellen Kunden offensteht. Die Qt Company hat Anfang des Jahres die Änderung angekündigt und diskutiert weitere Einschnitte für die Open-Source-Variante. (rme)