Am 23. Januar kündigte die Qt Company die Veröffentlichung von Qt 5.8 mit einer Reihe von Innovationen an, die von ziemlich globaler Natur sind. Lernen wir sie kennen.
Qt Lite
Eines der Hauptthemen von Qt 5.8 ist es, Qt flexibler und einfacher an die Ziele der Benutzer anzupassen, insbesondere für Entwickler eingebetteter Systeme. Qt Lite ist der Codename für ein Projekt, das darauf abzielt, diese Ziele umzusetzen.
Das Ziel der Entwickler von Qt Company war es, Qt einfacher an die Bedürfnisse von Entwicklern anzupassen und gleichzeitig die Verwendung von Funktionen zu vermeiden, die im Projekt nicht benötigt werden. Dies bringt erhebliche Einsparungen bei der Größe der kompilierten Qt-Bibliotheken und der zu entwickelnden Anwendung.
Das bereitgestellte System ist eine lange Reise, bei der ein erheblicher Teil des Systems, das für die Konfiguration von Qt verantwortlich ist, neu geschrieben wurde. Dieses neue System wird von dem befreit, was in den letzten 15 Jahren gewachsen ist, und dies kann auch zu Inkonsistenzen mit der Konfiguration von Qt auf verschiedenen Plattformen führen.
Als Ergebnis wurde ein einheitliches System zum Anpassen verschiedener Teile von Qt erhalten. Darüber hinaus erhalten Benutzer eine flexiblere Qt-Bibliothek in der Anpassung. Und es zielt auch darauf ab, die Entwickler der Qt Company bei der Unterstützung all der verschiedenen Möglichkeiten zur Anpassung und Verwendung von Qt zu entlasten.
Mit dem neuen System können Sie einen Build von Qt erstellen, der für einen bestimmten Fall geeignet ist. Es ist möglich, nicht benötigte Funktionen abzuwählen, wodurch ROM und RAM eingespart werden, wenn die Anwendung auf einem eingebetteten Gerät bereitgestellt wird. Um eine Vorstellung von den Möglichkeiten zur Ressourceneinsparung zu geben, sehen Sie unten ein Bild, das Qt-Stack-Anforderungen zeigt, wenn eine kleine QML-Anwendung ausgeführt wird:
Wie Sie sehen können, ermöglicht das neue Konfigurationssystem eine erhebliche Reduzierung der Größe und spart über 60 % an Binärgröße im Vergleich zu Qt 5.6.
Qt Wayland Compositor
Die Qt Wayland Compositor -API, die als Technologie in der Qt 5.7-Vorschau enthalten war, wird jetzt in Qt 5.8 vollständig unterstützt. Das Modul macht es einfach, Ihren eigenen Wayland Compositor zu erstellen.
Qt Wayland Compositor erleichtert die Implementierung Ihres eigenen Startbildschirms und Anwendungsmanagers. Dies ermöglicht die Erstellung leistungsstarker und flexibler eingebetteter Systeme, bei denen Sie mehrere Anwendungen mit eigenen Benutzeroberflächen haben. Qt Wayland Compositor unterstützt die einfache und transparente Handhabung mehrerer Bildschirme. Dies ist sowohl mit QML- als auch mit C++-APIs möglich.
Weitere Informationen finden Sie in der API-Dokumentation und Beispiele .
Kommunikation und Vernetzung
Qt Serialbus ist jetzt vollständig in Qt 5.8 implementiert. Dadurch können Sie die Qt-API für die Kommunikation und Protokolle über serielle Schnittstellen verwenden. Während es viele verschiedene APIs gibt, enthält diese Version CAN und Modbus.
Qt Network und Web Sockets unterstützen TLS PSK vollständig. Qt Network unterstützt jetzt benutzerdefinierte Diffie-Hellman- und HTTP/2-Optionen in QNetworkAccessManager .
Qt Bluetooth unterstützt BTLE-Peripheriegeräte unter macOS und iOS sowie BTLE-Hubs in WinRT.
Qt 5.8 hat außerdem ein neues Modul Qt Network Authorization als Vorabüberprüfungstechnologie hinzugefügt und unterstützt derzeit die Authentifizierungsschemata OAuth 1 und 2 .
Qt QML und Quick
In Qt QML und Qt Quick ist einiges passiert. Die QML-Engine erhielt Unterstützung für das Caching von QML- und JS-Binärdaten auf der Festplatte, was die Startgeschwindigkeit und den Speicherverbrauch der Engine reduziert. Nur die kommerzielle Version des Qt Quick-Compilers wird derzeit in Qt 5.8 unterstützt, aber diese Änderungen sollen in Zukunft für eine bessere Leistung und stärker integrierte Lösungen hinzugefügt werden.
Der Szenengraph von Qt Quick wurde erheblichen Änderungen unterzogen, um seine Abhängigkeit von OpenGL zu verringern. Auf diese Weise können Sie experimentelle Unterstützung für das Direct3D 12-Backend für Qt Quick hinzufügen, aber die Erstellung anderer Backends ermöglichen, die beispielsweise auf der Vulkan Graphics API basieren.
Außerdem unterstützt die Grafikszene jetzt partielle Bildschirmaktualisierungen, wenn nur ein kleiner Teil geändert wurde. Dies ergibt eine etwas bessere Leistung für Qt Quick 2D-Rendering.
Außerdem werden diese Änderungen an der Grafikszene als Gelegenheit präsentiert, die Rendering-Funktionalität von Qt Quick 2D direkt in Qt Quick zu integrieren. Das bedeutet, dass der Qt Quick 2D-Renderer in Qt 5.8 nicht mehr als separates Modul existiert.
Unter der Haube wurden auch große Änderungen für die Behandlung von Maus- und Berührungsereignissen vorgenommen, die in einer neuen QQuickPointerEvent-Klasse zusammengeführt wurden. Dies bereitet die Voraussetzungen für zukünftige Verbesserungen bei der Behandlung von Maus- und Berührungsereignissen, wirkt sich jedoch derzeit nicht auf Code aus, der Qt Quick verwendet.
Qt Quick Controls 2 erhielt auch mehrere neue Typen, wie Dialogfelder, abgerundete Schaltflächen und Werkzeugtrenner. Material- und universelle Stile, einige neue Effekte und Unterstützung für Systemdesigns.
Qt-Webengine
Wie immer wurde die von Qt Webengine verwendete Chromium-Version auf Version 53 aktualisiert. Ein wichtiger Unterschied ist die zusätzliche Unterstützung für das Drucken Webseiten. Viele kleine funktionale Änderungen wurden ebenfalls hinzugefügt, darunter eine neue QML-API zum Definieren benutzerdefinierter Dialoge, Tooltips und Kontextmenüs sowie Unterstützung für das Durchsuchen von Seitenquellen.
Qt-SCXML
Qt SCXML wird in Qt 5.8 vollständig unterstützt. Das Modul führt eine triviale SCXML -Integration basierend auf der Zustandsmaschine in Qt durch. Dies baut direkt auf dem Qt Statemachine Framework auf und erweitert es mit SCXML- und C++-Compilern und wird zur Laufzeit ausgeführt, was das Laden von SCXML-basiert ermöglicht auf der Zustandsmaschine.
Zusammen mit dem Qt-SCXML-Modul erhielt Qt Creator 4.2 Unterstützung für die Bearbeitung von Zustandsgraphen.
Neue Technologien in der vorläufigen Prüfung
Auch in Qt 5.8 gibt es neue Funktionalitäten, die in einer vorläufigen Überprüfung als Technologie ausgewählt wurden.
Qt ist jetzt sowohl für Apple TV als auch für watchOS kompiliert. Während viele der von iOS unterstützten Funktionen auch auf tvOS funktionieren sollten, ist die Unterstützung von watchOS auf die nicht-grafischen Funktionen von Qt beschränkt.
Qt Speech wurde als neues Modul zur Unterstützung von Text-to-Speech hinzugefügt.
Weitere Verbesserungen
Seit der ersten Veröffentlichung von Qt 3D mit Qt 5.7 haben sich die Bemühungen auf die Verfeinerung des Moduls konzentriert. An diesem Modul wurden zahlreiche Korrekturen und Leistungsverbesserungen vorgenommen.
Qt Charts hat Candlestick (Japanese Candle) und auch die API QOpenGLTextureBlitter in der öffentlichen Qt Gui erstellt.
Eingebettete Plattformen haben Qt unterstützt, um Geräte mit besserer Unterstützung für mehrere Bildschirme mithilfe des eglfs QPA-Plugins und Unterstützung für 90/180-Grad-Bildschirme zu erstellen.
Schließlich wurden viele Änderungen am Kerncode vorgenommen, um die Nutzung der von C++11 angebotenen Funktionalität zu verbessern.
Источник Qt-Blog