Die erste Testversion von Qt 6

Qt Company veröffentlicht Die erste Testversion des neuen Zweigs von Qt 6, der erhebliche architektonische Änderungen bieten wird, erfordert einen Compiler, der den C++17-Standard unterstĂŒtzt. Die Version umfasst nur das anfĂ€ngliche GerĂŒst der zukĂŒnftigen Veröffentlichung von Qt 6, die vor gesehen am 1. Dezember 2020. Die FunktionalitĂ€t im Zweig Qt 6 wird bis zur AnkĂŒndigung der Codebasis-Einfrierung am 31. August erweitert.

Die erste Testversion umfasst folgende Module:
Qt Core,
Qt GUI,
Qt Widgets,
Qt Network,
Qt QML,
Qt Quick,
Qt Quick Controls,
Qt SVG,
Qt Network Authorization,
Qt SQL und
Qt Test.

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