Ein turbulentes Jahr 2020 endete mit dem ersten Release der neuen Major-Version 6 des bekannten UI-Frameworks Qt. Wir schauen uns die neue Version im Detail an.
Rund acht Jahre nach dem Umstieg auf Version 5 betrachten viele die neue Version 6 argwöhnisch. Herausforderungen technischer Art sind bei einer Versionsumstellung nicht auszuschliessen - Fortschritt geht bekanntlich mit Veränderung einher. Zusätzlich bringt das Update weitreichende Änderungen im Lizenzierungsmodell mit. Die Ankündigung, LTS-Versionen den kommerziellen Nutzerinnen und Nutzern vorzubehalten, schürt jedoch Bedenken über die Zukunft des Frameworks. Vor allem die Stimmen aus dem Open Source-Bereich sprechen eine deutliche Sprache. Aber ein Schritt nach dem anderen…
The Qt Company
Ursprünglich zur norwegischen Firma Trolltech gehörend, wurde das Framework an Nokia, später dann an Digia verkauft, im Jahr 2014 in ‚The Qt Company‘ umbenannt und anschliessend an die Börse gebracht. Unabhängig davon hat sich Qt bestens entwickelt und ist aus der Softwareentwicklung nicht wegzudenken. Trotz der vielen strategischen und technischen Änderungen erfreut sich das Framework einer grossen Beliebtheit, nicht zuletzt durch die grosse Open Source Community und die Vielzahl an Einsatzmöglichkeiten.
Die Änderungen rund um das neue Release setzen sich zum Ziel, die breit gefächerten Anforderungen der bunt gemischten Nutzungsszenarien des Frameworks abzudecken.
Das Qt Design Studio und Design-Development-Workflow
In der neuen Major-Version konzentriert sich das Qt Design Studio vor allem auf Verbesserungen der Oberfläche und soll die Lücke zwischen Design und Entwicklung weiter schliessen. Die bereits zuvor integrierte 3D-Unterstützung im Qt Design Studio bekommt einen integrierten 3D-Editor, mit dem nun 3D-Elemente in klassischen UIs Platz finden können.
Bei Ergosign nutzen wir das Qt Design Studio eher selten. Nicht zuletzt, weil unser Ergosign-charakteristischer Design-Development-Workflow sich im Tagesgeschäft nicht auf ein einzelnes Framework beschränken lässt.
Hier gibt's mehr zum Thema Development bei Ergosign.
Cross-Kompatibilität und Skalierbarkeit sind weiterhin die Kerneigenschaften von Qt. Applikationen reichen von ganzen Desktop-Suiten bis hin zu Embedded-Systemen, von mobilen Applikationen auf den Smartphones Tausender bis hin zu komplexen Maschinensteuerungen, genutzt von wenigen Spezialisten.
Mit dem Qt 6.0 Release soll diese Diversifizierung unterstützt und vorangetrieben werden. Es ist deshalb nicht verwunderlich, dass zu den grössten technischen Neuerungen der Support des
C++17-Standards und CMake als Buildsystem gehören. Ein neuer Graphik-Abstraktionslayer entkoppelt Qt von OpenGl und das Qt Core-Modul erfreut sich einiger interessanter Verbesserungen.
Welche Verbesserungen bringt der neue Graphik-Abstraktionslayer?
Das Qt Rendering Hardware Interface ist eine interessante strategische Entscheidung der Qt Company. Bisher nutzt Qt nur OpenGL als hardwareunterstützte Grafikbeschleunigung.
Das QRHI regelt als Abstraktionsschicht zum einen den Zugriff auf die nativen Grafikschnittstellen der jeweiligen Laufzeitumgebung und bietet zum anderen zur Applikation ein vereinheitlichtes Interface.
Für unsere Kunden bieten wir oft Unterstützung bei der Evaluation der Hardware und Bibliotheken für deren spezifische Use Cases an.
Somit ist die Möglichkeit, etwas anderes neben OpenGL nutzen zu können, grundsätzlich eine tolle Sache. Unter Linux bleibt OpenGL in den meisten Fällen jedoch das Mittel der Wahl.
Was bringt Qt 6 noch mit?
Die Möglichkeit, CMake anstatt QMake als Buildsystem zu verwenden, besteht bereits seit einiger Zeit - in unserem Projektalltag halten sich beide die Waage. Qt hat jedoch bisher immer auf das leichtgewichtigere QMake gesetzt. CMake löst QMake nun als Default ab und Qt 6 selbst wird mit CMake gebaut.
Für die Projekte, die aktuell QMake als Buildsystem nutzen, ist diese Neuerung eher uninteressant. Legt man den aktuellen Releasezyklus zugrunde, ist eine Umstellung zum jetzigen Zeitpunkt nicht notwendig, da Qt die Unterstützung von QMake als Buildsystem für die gesamte Majorversion angekündigt hat. Für neue Projekte mit Qt 6, bei denen Qt aus den Sourcen selbst gebaut wird, ist CMake nun unumgänglich.
Neben den genannten grösseren Neuerungen bringt Qt 6 zahlreiche Änderungen in den einzelnen Modulen mit sich. Die Qt Container-Klassen und das Concurrency Handling wurden überarbeitet und Qt verfügt nun über zusätzliche Styles für natives Look & Feel für Windows- und MacOS-Applikationen. Vielversprechend ist ebenfalls die Erweiterung des QML-Bindingkonzepts, welches nun auch in C++ genutzt werden kann.