Alpha-Version von Qt 6.0 verfügbar

Qt Company kündigte an Über den Wechsel des Branches Qt 6 in die Alpha-Testphase. Qt 6 bringt erhebliche architektonische Änderungen mit sich und erfordert einen Compiler, der den C++17-Standard unterstützt. Die Veröffentlichung vor gesehen ist für den 1. Dezember 2020 geplant.

Hauptmerkmale Beispielcodes Qt 6:

  • Ein abstrahiertes grafisches API, das nicht von der 3D-API des Betriebssystems abhängt. Ein Schlüsselkomponent des neuen Grafikstapels von Qt ist der Szenen-Rendering-Engine, der eine RHI (Rendering Hardware Interface)-Schicht verwendet, um die Ausführung von Qt Quick-Anwendungen nicht nur mit OpenGL, sondern auch über die APIs Vulkan, Metal und Direct 3D zu ermöglichen.
  • Das Modul Qt Quick 3D mit API zur Erstellung von Benutzeroberflächen auf Basis von Qt Quick, die 2D- und 3D-Grafik-Elemente kombinieren. Qt Quick 3D erlaubt die Verwendung von QML zur Definition von 3D-Elementen in Benutzeroberflächen, ohne das Format UIP zu verwenden. In Qt Quick 3D kann ein Laufzeitumgebung (Qt Quick), ein Szenenlayout und ein Animationsframework sowohl für 2D als auch 3D verwendet werden, während Qt Design Studio für die visuelle Entwicklung der Benutzeroberfläche eingesetzt wird. Das Modul löst Probleme wie hohe Overheads bei der Integration von QML mit Inhalten aus Qt 3D oder 3D Studio und bietet die Möglichkeit zur Synchronisation von Animationen und Transformationen auf der Ebene einzelner Frames zwischen 2D und 3D.
  • Umstrukturierung der Codebasis in kleinere, zusammensetzbare Teile und Reduzierung der Größe des Kernprodukts. Entwicklertools und spezialisierte Komponenten werden als Add-ons angeboten, die über einen Katalog-Shop bereitgestellt werden. Qt Marketplace.
  • Wesentliche Modernisierung von QML:
    • Unterstützung strenger Typisierung.
    • Möglichkeit, QML in eine C++-Darstellung und in Maschinencode zu kompilieren.
    • Die vollständige Unterstützung von JavaScript wird zu einer Option (die Verwendung einer voll funktionsfähigen JavaScript-Engine erfordert erhebliche Ressourcen, was die Verwendung von QML auf Geräten wie Mikrocontrollern behindert).
    • Verzicht auf Versionsverwaltung in QML.
    • Vereinheitlichung von Datenstrukturen, die in QObject und QML dupliziert werden (ermöglicht eine Reduzierung des Speicherverbrauchs und beschleunigt den Start).
    • Abkehr von der Generierung von Datenstrukturen zur Laufzeit zugunsten der Generierung zur Compile-Zeit.
    • Verstecken interner Komponenten durch die Verwendung von privaten Methoden und Eigenschaften.
    • Verbesserte Integration mit Entwicklungstools für Refactoring und Fehlersuche während der Kompilierung.
  • Hinzufügen von Tools zur Verarbeitung von grafikbezogenen Ressourcen während der Kompilierung, beispielsweise zum Konvertieren von PNG-Bildern in komprimierte Texturen oder zum Umwandeln von Shadern und Meshes in optimierte Binärformate für spezifische Hardware.
  • Integration einer einheitlichen Engine für Themen und Stile, die das Erscheinungsbild von Anwendungen auf Basis von Qt Widgets und Qt Quick ermöglicht, das auf verschiedenen mobilen und Desktop-Plattformen nativ ist.
  • Als Build-System wurde entschieden, CMake anstelle von QMake zu verwenden. Die Unterstützung von Anwendungen, die mit QMake erstellt wurden, bleibt erhalten, aber Qt selbst wird mit CMake aufgebaut. CMake wurde gewählt, da dieses Werkzeug in der C++-Projektentwicklung weit verbreitet ist und von vielen integrierten Entwicklungsumgebungen unterstützt wird. Die Entwicklung des Build-Systems Qbs, das als Ersatz für QMake vorgesehen war, wird fortgesetzt von der Community.
  • Wechsel zur Entwicklung auf den Standard C++17 (zuvor wurde C++98 verwendet). In Qt 6 wird die Unterstützung vieler moderner C++-Funktionen geplant, ohne die Abwärtskompatibilität zu bestehendem Code, der auf früheren Standards basiert, zu verlieren.
  • Möglichkeit, bestimmte Funktionalitäten, die für QML und Qt Quick angeboten werden, im C++-Code zu verwenden. Es wird auch ein neues Eigenschaftenystem für QObject und ähnliche Klassen eingeführt. Der Bindungs-Engine wird aus QML in den Kern von Qt integriert, sodass die Belastung und der Speicherverbrauch für Bindungen reduziert werden und diese für alle Teile von Qt, nicht nur für Qt Quick, verfügbar sind.
  • Erweiterung der Unterstützung zusätzlicher Sprachen wie Python und WebAssembly.
  • Quelle: opennet.ru

60GB SSD 8Gb DDR4