Die Alpha-Version von Qt 6.0 ist verfügbar

Qt Company hat bekannt gegeben über die Übertragung des Zweigs Qt 6 in die Alpha-Testphase. Qt 6 bringt erhebliche architektonische Änderungen mit sich, und für den Aufbau wird ein Compiler benötigt, der den C++17-Standard unterstützt. Die Veröffentlichung geplant ist für den 1. Dezember 2020 geplant.

Schlüssige Eigenschaften Qt 6:

  • Eine abstrahierte grafische API, die nicht von der 3D-API des Betriebssystems abhängt. Ein Schlüsselkomponente des neuen grafischen Stacks von Qt ist die Render-Engine für Szenen, die eine RHI (Rendering Hardware Interface)-Schicht verwendet, um sicherzustellen, dass Qt Quick-Anwendungen nicht nur mit OpenGL, sondern auch mit Vulkan, Metal und Direct 3D arbeiten.
  • Das Qt Quick 3D-Modul mit einer API zur Erstellung von Benutzeroberflächen, die auf Qt Quick basieren und Elemente der 2D- und 3D-Grafik kombinieren. Qt Quick 3D ermöglicht die Verwendung von QML zur Definition von 3D-Interface-Elementen, ohne dass das UIP-Format erforderlich ist. In Qt Quick 3D können sowohl für 2D als auch für 3D ein einziges Runtime (Qt Quick), ein Layout und ein Animationsframework verwendet werden, während zur visuellen Entwicklung der Benutzeroberfläche Qt Design Studio zum Einsatz kommt. Das Modul adressiert Probleme wie große Overhead-Kosten bei der Integration von QML mit Inhalten aus Qt 3D oder 3D-Studio und ermöglicht die Synchronisierung von Animationen und Transformationen auf der Ebene einzelner Frames zwischen 2D und 3D.
  • Restrukturierung der Codebasis durch Aufteilung in kleinere Komponenten und Reduzierung der Grundproduktgröße. Entwicklerwerkzeuge und spezialisierte Komponenten werden als Ergänzungen über den Katalog angeboten. Qt Marketplace.
  • Wesentliche Modernisierung von QML:
    • Unterstützung strenger Typisierung.
    • Möglichkeit, QML in C++-Darstellungen und Maschinencode zu kompilieren.
    • Übergang zur vollständigen Unterstützung von JavaScript als Option (der Einsatz eines voll funktionsfähigen JavaScript-Engines erfordert umfangreiche Ressourcen, was die Verwendung von QML auf Geräten wie Mikrocontrollern einschränkt).
    • Verzicht auf Versionierung in QML.
    • Vereinheitlichung der Datenstrukturen, die in QObject und QML dupliziert sind (dies wird den Speicherverbrauch reduzieren und den Start beschleunigen).
    • Abkehr von der Generierung von Datenstrukturen zur Laufzeit zugunsten der Generierung zur Kompilierungszeit.
    • Verborgene interne Komponenten durch Verwendung privater Methoden und Eigenschaften.
    • Verbesserte Integration mit Entwicklungstools zur Refaktorisierung und Fehlerdiagnose während der Kompilierung.
  • Hinzufügen von Tools zur Verarbeitung grafikbezogener Ressourcen während des Kompilierungsprozesses, beispielsweise zur Konvertierung von PNG-Bildern in komprimierte Texturen oder zur Umwandlung von Shadern und Meshes in optimierte binäre Formate für spezifische Hardware.
  • Integration einer einheitlichen Engine für Themen und Stile, die es ermöglicht, das Erscheinungsbild von Anwendungen, die auf Qt Widgets und Qt Quick basieren, plattformübergreifend einheitlich zu gestalten.
  • Als Build-System wurde beschlossen, CMake anstelle von QMake zu verwenden. Die Unterstützung für die Erstellung von Anwendungen mit QMake bleibt bestehen, jedoch wird Qt selbst mit CMake kompiliert. CMake wurde gewählt, da dieses Werkzeug in der C++-Entwicklergemeinschaft weit verbreitet ist und von vielen integrierten Entwicklungsumgebungen unterstützt wird. Die Entwicklung des Build-Systems Qbs, das als Ersatz für QMake gelten sollte, wurde fortgesetzt von der Community.
  • Der Übergang zur Entwicklung mit dem C++17 Standard (zuvor wurde C++98 verwendet). In Qt 6 ist die Implementierung vieler moderner C++ Features geplant, ohne die Rückwärtskompatibilität mit Code auf Basis älterer Standards zu verlieren.
  • Die Nutzung bestimmter Funktionalitäten in C++-Code, die auch für QML und Qt Quick angeboten werden. Eine neue Properties-System für QObject und ähnliche Klassen wird vorgestellt. Ein Binding-Engine wird in das Qt-Kernel integriert, was die Last und den Speicherverbrauch für Bindings verringert und sie für alle Teile von Qt, nicht nur für Qt Quick, verfügbar macht.
  • Erweiterung der Unterstützung für zusätzliche Sprachen wie Python und WebAssembly.
  • Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster