Der Entwicklungsplan fĂŒr die FunktionalitĂ€t von Qt 6 wurde veröffentlicht.

Lars Knoll, der Schöpfer des KHTML-Engines, Leiter des Qt-Projekts und technischer Direktor der Qt Company, berichtete Ă€ußert sich zu den PlĂ€nen zur Entwicklung des nĂ€chsten bedeutenden Zweigs des Qt-Frameworks. Nach dem Abschluss der Funktionen im Qt 5.14 wird der Fokus auf der Vorbereitung der Qt 6-Version liegen, die Ende 2020 erwartet wird.

Qt 6 wird mit dem Ziel entwickelt, eine KompatibilitĂ€t zu Qt 5 zu gewĂ€hrleisten, jedoch können möglicherweise einzelne Probleme auftreten, da die geplanten architektonischen VerĂ€nderungen und die Bereinigung nicht ohne Verlust eines bestimmten KompatibilitĂ€tsniveaus umgesetzt werden können. Um den Übergang zu erleichtern, werden einige Funktionen von Qt 6 in reduzierter Form in den Versionen Qt 5.14 und Qt 5.15 LTS enthalten sein. Außerdem wird ein Werkzeugset zur Vereinfachung der Migration auf Qt 6 bereitgestellt.

Zu den Hauptzielen fĂŒr den nĂ€chsten bedeutenden Zweig zĂ€hlen die Anpassung der FunktionalitĂ€ten an die Anforderungen von 2020, die Bereinigung des Codes und die Vereinfachung der Projektpflege. Erwartete Änderungen:

  • 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 Fehlersuche wĂ€hrend der Kompilierung;
  • HinzufĂŒgung einer neuen abstrakten Schicht fĂŒr die Rendering Hardware Interface (RHI), die nahtlose Nutzung verschiedener grafischer APIs wie OpenGL, Vulkan, Metal und Direct 3D ermöglicht (frĂŒher war Qt nur auf OpenGL angewiesen). Die gesamte bestehende Rendering-Infrastruktur, einschließlich QPainter, Qt Quick Scenegraph und Qt3D, wird auf die Nutzung von RHI umgestellt. Zudem ist geplant, das Modul Qt Shader Tools hinzuzufĂŒgen, um verschiedene Shader-Entwicklungssprachen zu unterstĂŒtzen und die Cross-Kompilierung von Shadern sowohl in der Build-Phase als auch zur Laufzeit zu ermöglichen;
  • Vorbereitung einer einheitlichen API zur Erstellung von BenutzeroberflĂ€chen, die Elemente der 2D- und 3D-Grafik kombiniert. Die neue API ermöglicht die Nutzung von QML zur Definition von 3D-OberflĂ€chenelementen, ohne dass das UIP-Format verwendet werden muss. Im neuen Interface zur Integration von 3D-Inhalten mit Qt Quick sollen Probleme gelöst werden, die hohe Overheads bei der Integration von QML mit Inhalten aus Qt 3D oder 3D Studio sowie die Unmöglichkeit der Synchronisation von Animationen und Transformationen auf Einzelbildniveau zwischen 2D und 3D umfassen. Die gemeinsame und eingebettete Darstellung von 2D und 3D wird mithilfe einer neuen Rendering-Engine realisiert. Die vorlĂ€ufige Implementierung des neuen Qt Quick mit 3D-UnterstĂŒtzung wird in der Version Qt 5.14 erwartet;
  • HinzufĂŒgen von Werkzeugen zur Verarbeitung von grafikbezogenen Ressourcen wĂ€hrend des Kompilierungsprozesses, beispielsweise zur Umwandlung von PNG-Bildern in komprimierte Texturen oder zur Konvertierung von Shadern und Meshes in optimierte BinĂ€rformate fĂŒr bestimmte Hardware;
  • Integration einer einheitlichen Engine fĂŒr Designs und Stile, die es ermöglicht, das Erscheinungsbild von Anwendungen auf der Basis von Qt Widgets und Qt Quick, die auf verschiedenen mobilen und Desktop-Plattformen nativ sind, zu erreichen;
  • Vereinigung der Werkzeuge zur BenutzeroberflĂ€chengestaltung. Um die Funktionsduplizierung zu vermeiden und die Bereitstellung von zwei separaten Produkten zu beenden, wird die Integration der FunktionalitĂ€ten von Qt 3D Studio in das Qt Design Studio erwartet, wobei viele der Subsysteme und das Plugin-Framework auf der gemeinsamen Codebasis mit Qt Creator basieren.
    Im Qt Design Studio wird zudem angestrebt, eine qualitativ hochwertige Integration mit Content-Erstellungs-Paketen wie Photoshop, Sketch, Illustrator, Maya und 3D Max zu gewĂ€hrleisten. Als Hauptprogrammiersprachen, die im einheitlichen Entwicklungstool unterstĂŒtzt werden, gelten C++, QML und Python. Die Vereinheitlichung umfasst auch die Möglichkeit, von Qt Creator auf die Designwerkzeuge zuzugreifen und den Designern Funktionen der Entwicklerwerkzeuge zu bieten, wie z.B. Projektkompilierung oder App-Tests auf GerĂ€ten;
  • 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 eingestellt;
  • 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 Möglichkeit, bestimmte Funktionen aus C++ fĂŒr QML und Qt Quick zu nutzen. Zudem wird ein neues Eigenschaften-System fĂŒr QObject und Ă€hnliche Klassen vorgestellt. Eine Engine fĂŒr Bindings wird in den Qt-Kernel integriert, was die Belastung und den Speicherverbrauch fĂŒr Bindings verringert und sie fĂŒr alle Teile von Qt zugĂ€nglich macht, nicht nur fĂŒr Qt Quick;
  • Fortsetzung der Arbeit zur Erweiterung der UnterstĂŒtzung zusĂ€tzlicher Sprachen wie Python und WebAssembly;
  • Restrukturierung mit Unterteilung in kleinere Komponenten und Reduzierung der GrĂ¶ĂŸe des Basisprodukts. Entwicklerwerkzeuge und spezialisierte Komponenten werden als Erweiterungen bereitgestellt, die ĂŒber einen neuen Katalog-Store verteilt werden. Sowohl kostenlose als auch kostenpflichtige Erweiterungen von Drittanbietern werden akzeptiert.

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