Nach einem halben Jahr Entwicklung wurde das plattformübergreifende Framework . Der Quellcode der Qt-Komponenten wird unter den Lizenzen LGPLv3 und GPLv2 bereitgestellt, während die Qt-Entwicklungstools wie Qt Creator und qmake sowie einige Module unter der GPLv3-Lizenz angeboten werden. Mit der Veröffentlichung von Qt 5.14 begann die Vorbereitung des Zweigs Qt 6, in dem значительные архитектурные изменения. Qt 6 намечен на конец следующего года и для сглаживания перехода на новую ветку предварительные реализации некоторых новшеств решено включить в состав выпусков Qt 5.14 и Qt 5.15 LTS.
Haupt :
- In Qt Quick wurde mit der Bereitstellung einer grafischen API begonnen, die unabhängig von der 3D-API des Betriebssystems ist. In Qt 5.14 wird eine vorläufige Implementierung einer neuen Szenenrendering-Engine angeboten, die eine neue Schicht namens RHI (Rendering Hardware Interface) verwendet, um die Ausführung von Qt Quick-Anwendungen nicht nur über OpenGL, wie bisher, sondern auch unter Verwendung von Vulkan, Metal und Direct 3D 11 zu ermöglichen. Derzeit wird die neue Engine als Option angeboten, um Anwendungen auf den Übergang zu Qt 6 vorzubereiten, in dem RHI standardmäßig zur Grafikdarstellung eingesetzt wird.
- Das Qt Quick Timeline-Modul wurde implementiert, um die Animation von Eigenschaften mit einer Zeitleiste und Keyframes zu erleichtern. Dieses Modul wurde aus dem Code der Qt Design Studio-Entwicklungsumgebung extrahiert, die einen zeitbasierten Editor für die Erstellung von Animationen ohne Programmieraufwand bietet.
- Ein experimentelles Modul wurde hinzugefügt , das eine einheitliche API für die Erstellung von Benutzeroberflächen auf Basis von Qt Quick bereitstellt, die 2D- und 3D-Grafik-Elemente kombinieren. Die neue API ermöglicht es, QML zur Definition von 3D-Elementen der Benutzeroberflächen zu verwenden, ohne das UIP-Format zu benötigen. Das Modul löst Herausforderungen wie hohe Overheads bei der Integration von QML mit Inhalten aus Qt 3D oder 3D Studio und ermöglicht die Synchronisation von Animationen und Transformationen auf der Ebene einzelner Frames zwischen 2D und 3D. In Qt Quick 3D können für 2D und 3D ein gemeinsamer Runtime (Qt Quick), ein Layout und ein Animationsframework verwendet werden, während für die visuelle Entwicklung der Benutzeroberfläche Qt Design Studio zum Einsatz kommt.
- Ein WheelHandler wurde hinzugefügt, um Mausrad-Ereignisse sowie Ereignisse für ein emuliertes Touchpad-Rad zu verarbeiten.
- Die Arbeiten zur Verbesserung der Anzeige auf hochauflösenden Bildschirmen wurden fortgesetzt. Es wurde auch die Möglichkeit hinzugefügt, dezimale Skalierungsfaktoren festzulegen.
- Die Möglichkeit, Farbräume für Bilder hinzuzufügen, wurde implementiert, was eine korrekte Farbwiedergabe beim Ausgeben von Bildern auf kalibrierten Monitoren ermöglicht.
- Der Namensraum QColorConstants wurde hinzugefügt, der während der компиляции Instanzen der Klasse QColor mit einer vordefinierten Palette generiert.
- In die Qt Widgets- und Qt Quick-Komponenten zur Erstellung von Texteditoren wurde die Unterstützung für das Lesen und Schreiben im Markdown-Format integriert.
- Im QCalendar-API wurde die Möglichkeit implementiert, mit Kalendern zu arbeiten, die vom gregorianischen Kalender abweichen.
- Für Android wurde die Unterstützung für Builds, die mehrere ABIs abdecken, hinzugefügt, sodass die Anwendung sofort für verschiedene Architekturen kompiliert werden kann. Auch die Unterstützung für das AAB-Paketformat wurde hinzugefügt, das die Lieferung der Anwendung für alle unterstützten Architekturen in einem Archiv ermöglicht.
- Optimierung der Leistung des Qt 3D-Moduls, einschließlich verbesserter Verarbeitung von Threads, Framebuffer-Objekten und Benachrichtigungssystemen. Dadurch wurde die CPU-Belastung beim Rendern eines Frames gesenkt und die Effizienz der Synchronisation zwischen den laufenden Threads erhöht.
- Im Qt Network-Modul wurden APIs zur Konfiguration der HTTP/2-Einstellungen und zur Überwachung der Netzwerkverbindung hinzugefügt.
- Die Web-Engine Qt WebEngine wurde auf Chromium 77 aktualisiert und um eine neue API zur Verwaltung des Lebenszyklus des QWebEnginePage-Objekts erweitert.
- Lizenz für die Komponenten Qt Wayland Compositor, Qt Application Manager und Qt PDF wurde von LGPLv3 auf GPLv3 geändert, d.h. die Verknüpfung mit neuen Versionen dieser Komponenten erfordert nun die Offenlegung des Quellcodes unter Lizenzen, die mit GPLv3 kompatibel sind, oder den Kauf einer kommerziellen Lizenz (die Anwendung von LGPLv3 erlaubte die Verknüpfung mit proprietärem Code).
Gleichzeitig Veröffentlichung der integrierten Entwicklungsumgebung , die zur Erstellung plattformübergreifender Anwendungen mit der Qt-Bibliothek gedacht ist. Sowohl die Entwicklung klassischer Programme in C++ als auch die Nutzung der QML-Sprache wird unterstützt, bei der zur Definition von Abläufen JavaScript verwendet wird und die Struktur sowie die Parameter der UI-Elemente durch CSS-ähnliche Blöcke festgelegt werden.
In der neuen Version von Qt Creator wurde experimentelle Unterstützung für die Entwicklung von Anwendungen für Mikrocontroller und die Kompilierung in WebAssembly hinzugefügt, unter Verwendung von Modulen „» und «„. Für Systeme mit
CMake 3.14 und neueren Versionen wurde eine neue (/.cmake/api/) implementiert. Der Code-Editor unterstützt jetzt Protokoll für den Language Server zur Hervorhebung der Semantik sowie eine vereinfachte Konfiguration des Language Servers für die Programmiersprache Python. Die Benutzeroberfläche bietet jetzt die Möglichkeit, den Stil der Zeilenende-Markierungen zu ändern. Im Qt Quick Designer wurde die Funktion zum Bearbeiten von QML-Bindings hinzugefügt.
Quelle: opennet.ru
