Release des Frameworks Qt 5.13

Nach einem halben Jahr Entwicklung vorbereitet Release des plattformübergreifenden Frameworks Qt 5.13. Der Quellcode der Qt-Komponenten wird unter den Lizenzen LGPLv3 und GPLv2 geliefert, die Entwicklerwerkzeuge von Qt, wie Qt Creator und qmake, sowie einige Module werden unter der GPLv3-Lizenz bereitgestellt.

Haupt- Neuheiten:

  • Volle Unterstützung des Moduls „Qt for WebAssembly“ (früher experimentell), das es ermöglicht, grafische Anwendungen auf Basis von Qt als Module in WebAssembly zu kompilieren, die direkt im Webbrowser ausgeführt werden können. Für die Kompilierung wird Emscripten verwendet. OpenGL wird in WebGL umgesetzt;
  • Die Möglichkeiten des Qt GUI-Moduls wurden erweitert, das Klassen zur Integration mit Fenstersystemen, Ereignisverarbeitung, Integration mit OpenGL und OpenGL ES, 2D-Grafik, Bildverarbeitung, Schriftarten und Text zusammenfasst. In der neuen Version wurde eine neue API hinzugefügt
    QImage::convertTo zur Konvertierung von Bildformaten. In die Klasse QPainterPath wurden neue Methoden clear, reserve und capacity hinzugefügt;
  • Im Qt QML-Modul, das Werkzeuge zur Entwicklung der Benutzeroberfläche mit der QML-Sprache bereitstellt, wurde die Unterstützung für auf C++-Code definierte Enumerationen verbessert. Die Verarbeitung von „null“-Werten wurde während der Kompilierungsphase optimiert. Die Möglichkeit zur Generierung von Funktionslisten in 64-Bit-Windows-Systemen wurde hinzugefügt, um ein Stack-Unwinding für JIT-kompilierte Funktionen zu ermöglichen;
  • In Qt Quick wurde im TableView-Objekt die Möglichkeit zum Ausblenden von Spalten und Zeilen hinzugefügt;
  • In Qt Quick Controls 2 wurde der Typ SplitView für die horizontale oder vertikale Anordnung von Elementen mit einer sich bewegenden Trennlinie zwischen jedem Element hinzugefügt. Für Symbole wurde eine Eigenschaft hinzugefügt, die deren Caching steuert;
  • Die Web-Engine Qt WebEngine wurde auf den Stand Chromium 73 aktualisiert und um einen integrierten PDF-Viewer erweitert, der als internes Add-on gestaltet ist. In der neuen Version wurde auch ein Speicher für lokale Client-Zertifikate sowie die Unterstützung von Zertifikaten aus QML hinzugefügt. API für Webbenachrichtigungen wurde hinzugefügt. Die Unterstützung für die Erkennung von URL-Anfragen wurde implementiert;
  • Im Qt Network-Modul für SSL-Sockets wurde die Unterstützung für sichere Kanäle (Secure Channel) hinzugefügt und die Möglichkeit zur Überprüfung des Zertifikatsstatus über das OCSP-Protokoll (Online Certificate Status Protocol) eingeführt. Für die Unterstützung von SSL unter Linux und Android wurde ein neuer Zweig der OpenSSL 1.1-Bibliothek verwendet;
  • Im Qt Multimedia Modul für QML des Typs VideoOutput wurde die Unterstützung für unterbrechungsfreies Abspielen (ohne Pausen zwischen unterschiedlichen Inhalten, gesteuert durch die Eigenschaft flushMode) hinzugefügt. Für Windows und macOS wurde die Verwendung des GStreamer-Frameworks ermöglicht. Für Android wurde die Unterstützung von Audio-Rollen hinzugefügt;
  • Das Qt KNX Modul wurde mit Unterstützung des gleichnamigen Standards zur Steuerung von Smart-Home-Systemen aktualisiert. Eine API wurde hinzugefügt, um sichere Client-Verbindungen mit dem KNXnet-Server herzustellen, die für den sicheren Versand von Nachrichten auf den KNX-Bus und die Steuerung von KNX-fähigen Geräten verwendet werden können;
  • Die experimentelle Kennzeichnung des C++ API Moduls Qt OPC UA, das die Unterstützung des industriellen Kommunikationsstandards OPC/UA bietet, wurde entfernt. Eine experimentelle API für QML wurde hinzugefügt;
  • Ein neues experimentelles Modul Qt CoAP (Constrained Application Protocol) wurde hinzugefügt, das den Client-Teil des M2M-Protokolls implementiert, das zur Erstellung von Netzwerken aus IoT-Geräten verwendet wird. Die Unterstützung von DTLS (Datagram TLS) über UDP wurde realisiert;
  • Korrekturen und Verbesserungen wurden im Set der Module „Qt for Python“ für die Erstellung grafischer Anwendungen in Python unter Verwendung von Qt5 vorgenommen (Python-Entwickler haben Zugriff auf den größten Teil der C++ API von Qt). Qt for Python basiert auf dem Modul PySide2 und setzt dessen Entwicklung fort (im Wesentlichen wird die erste Veröffentlichung von PySide mit Unterstützung für Qt 5 unter neuem Namen angeboten);
  • Ein neues experimentelles Modul Qt Lottie, das eine erweiterte API für QML bietet, um Grafiken und Animationen, die im JSON-Format mit dem Bodymovin-Plugin für Adobe After Effects exportiert wurden, darzustellen. Mit QtLottie kann der Designer Animationseffekte in einer für ihn geeigneten Anwendung vorbereiten, während der Entwickler die exportierten Dateien direkt mit einer QtQuick-Anwendung verbindet. QtLottie enthält einen integrierten Mikrodienst für die Ausführung von Animationen, das Zuschneiden, die Verarbeitung von Ebenen und anderen Effekten. Der Dienst ist über das QML-Element LottieAnimation verfügbar, das wie jedes andere QtQuick-Element aus QML-Code gesteuert werden kann;
  • Im Qt Wayland Compositor, einem Multithread-Zeichnungssystem für Embedded-Geräte auf Basis des Wayland-Protokolls, wurde die Unterstützung der Protokolle linux-dmabuf-unstable-v1 und wp_viewporter sichergestellt. In den Plattformkomponenten für Wayland wurde die Unterstützung des Protokolls fullscreen-shell-unstable-v1 hinzugefügt;
  • Im Modul zur Unterstützung der Android-Plattform wurde die Möglichkeit hinzugefügt, native Dialoge zur Arbeit mit Dateien zu verwenden. Die Anforderungen an die minimale Plattformversion wurden auf Android 5.0 (API-Level 21) angehoben;
  • In Qt 3D wurde die Unterstützung für den Import und Export von OpenGL-Textur-Handlern hinzugefügt. Es wurde eine grundlegende Unterstützung für den Import von glTF 2.0-Szenen umgesetzt;
  • Die Module Qt Script, Qt Quick Controls 1 und Qt XmlPatterns wurden als veraltet erklärt und werden in einer der nächsten Versionen entfernt. Das Modul Qt Canvas 3D wurde entfernt.
    Stabile Version der Datenbank MariaDB 10.4

Quelle: opennet.ru

60GB SSD 8Gb DDR4