Alpha-Version von Qt 6.0 verfügbar

Qt-Unternehmen kündigte die über die Übersetzung des Threads Qt 6 bis zur Alpha-Testphase. Qt 6 enthält erhebliche architektonische Änderungen und erfordert zum Erstellen einen Compiler, der den C++17-Standard unterstützt. Freigeben umrissen Stand: 1. Dezember 2020.

Taste eigenschaften Qt 6:

  • Eine abstrahierte Grafik-API, die unabhängig von der 3D-API des Betriebssystems ist. Eine Schlüsselkomponente des neuen Qt-Grafikstapels ist die Szenen-Rendering-Engine, die die RHI-Schicht (Rendering Hardware Interface) nutzt, um Qt Quick-Anwendungen nicht nur mit OpenGL, sondern auch zusätzlich zu den Vulkan-, Metal- und Direct 3D-APIs zu betreiben.
  • Qt Quick 3D-Modul mit API zum Erstellen von Benutzeroberflächen auf Basis von Qt Quick, das 2D- und 3D-Grafikelemente kombiniert. Mit Qt Quick 3D können Sie QML verwenden, um 3D-Schnittstellenelemente zu definieren, ohne das UIP-Format zu verwenden. In Qt Quick 3D können Sie eine Laufzeit (Qt Quick), ein Szenenlayout und ein Animationsframework für 2D und 3D verwenden und Qt Design Studio für die Entwicklung visueller Schnittstellen verwenden. Das Modul löst Probleme wie den großen Overhead bei der Integration von QML mit Inhalten aus Qt 3D oder 3D Studio und bietet die Möglichkeit, Animationen und Transformationen auf Frame-Ebene zwischen 2D und 3D zu synchronisieren.
  • Umstrukturierung der Codebasis in kleinere Komponenten und Reduzierung der Größe des Basisprodukts. Entwicklertools und Spezialkomponenten werden als Add-Ons bereitgestellt, die über den Katalogspeicher verteilt werden Qt Marktplatz.
  • Bedeutende Modernisierung von QML:
    • Starke Tippunterstützung.
    • Fähigkeit, QML in C++-Darstellung und Maschinencode zu kompilieren.
    • Vollständige JavaScript-Unterstützung zu einer Option machen (die Verwendung einer voll ausgestatteten JavaScript-Engine erfordert viele Ressourcen, was die Verwendung von QML auf Geräten wie Mikrocontrollern verhindert).
    • Verweigerung der Versionierung in QML.
    • Vereinheitlichung der in QObject und QML duplizierten Datenstrukturen (reduziert den Speicherverbrauch und beschleunigt den Start).
    • Abkehr von der Laufzeitgenerierung von Datenstrukturen hin zur Generierung zur Kompilierungszeit.
    • Verstecken interner Komponenten durch die Verwendung privater Methoden und Eigenschaften.
    • Verbesserte Integration mit Entwicklungstools für Refactoring und Fehlerdiagnose zur Kompilierungszeit.
  • Hinzufügen von Tools zum Verarbeiten grafikbezogener Assets zur Kompilierungszeit, z. B. Konvertieren von PNG-Bildern in komprimierte Texturen oder Konvertieren von Shader und Meshes in optimierte Binärformate für bestimmte Hardware.
  • Durch die Einbettung einer einheitlichen Engine für Themen und Stile können Sie das Erscheinungsbild von Anwendungen basierend auf Qt Widgets und Qt Quick erreichen, die für verschiedene Mobil- und Desktop-Plattformen nativ sind.
  • Es wurde beschlossen, CMake anstelle von QMake als Build-System zu verwenden. Die Unterstützung für die Erstellung von Anwendungen mit QMake bleibt bestehen, Qt selbst wird jedoch mit CMake erstellt. CMake wurde ausgewählt, weil dieses Toolkit unter C++-Projektentwicklern weit verbreitet ist und in vielen integrierten Entwicklungsumgebungen unterstützt wird. Entwicklung des Qbs-Montagesystems, das angeblich ein Ersatz für QMake ist, erweitert Gemeinschaft.
  • Übergang zum C++17-Standard während der Entwicklung (zuvor wurde C++98 verwendet). Qt 6 plant, Unterstützung für viele moderne C++-Funktionen zu implementieren, ohne jedoch die Abwärtskompatibilität mit Code zu verlieren, der auf früheren Standards basiert.
  • Die Möglichkeit, einige der für QML und Qt Quick angebotenen Funktionen im C++-Code zu nutzen. Darunter wird auch ein neues Eigenschaftssystem für QObject und ähnliche Klassen vorgestellt. Von QML aus wird eine Engine für die Arbeit mit Bindungen in den Qt-Kern integriert, was die Last und den Speicherverbrauch für Bindungen reduziert und sie allen Teilen von Qt und nicht nur Qt Quick zur Verfügung stellt.
  • Erweiterte Unterstützung für zusätzliche Sprachen wie Python und WebAssembly.
  • Source: opennet.ru

Kommentar hinzufügen