Wydanie frameworku Qt 5.13

Po sześciu miesiącach rozwoju przygotowany wydanie wieloplatformowego frameworka Qt 5.13. Kod źródłowy komponentów Qt jest objęty licencją LGPLv3 i GPLv2, narzędzia programistyczne Qt, takie jak Qt Creator i qmake, a niektóre moduły są objęte licencją GPLv3.

Głównym innowacje:

  • Pełną obsługę zapewnia moduł „Qt for WebAssembly” (wcześniej eksperymentalny), który umożliwia kompilowanie aplikacji graficznych opartych na Qt w postaci modułów WebAssembly, które można uruchomić bezpośrednio w przeglądarce internetowej. Emscripten służy do kompilacji. OpenGL przekłada się na WebGL;
  • Rozszerzone zostały możliwości modułu Qt GUI, który uogólnia klasy związane z integracją z systemami okiennymi, przetwarzaniem zdarzeń, integracją z OpenGL i OpenGL ES, grafiką 2D, pracą z obrazami, czcionkami i tekstem. Nowa wersja dodaje nowe API
    QImage::convertTo do konwersji formatów obrazów. Do klasy QPainterPath dodano nowe metody clear, rezerwa i pojemność;

  • W module Qt QML udostępniającym narzędzia do tworzenia interfejsu z wykorzystaniem języka QML poprawiono obsługę typów wyliczeniowych zdefiniowanych w kodzie C++. Zoptymalizowane przetwarzanie wartości „null” na etapie kompilacji. Dodano możliwość generowania tabel funkcji w 64-bitowych systemach Windows, umożliwiając rozwinięcie stosu dla funkcji skompilowanych w JIT;
  • W Qt Quick obiekt TableView dodał możliwość ukrywania kolumn i wierszy tabeli;
  • Dodano typ do Qt Quick Controls 2 Podzielony widok aby umieścić elementy poziomo lub pionowo, wyświetlając ruchomy separator pomiędzy każdym elementem. Do ikon dodano właściwość pozwalającą kontrolować ich buforowanie;
  • Silnik sieciowy Qt WebEngine został zaktualizowany do Chromium 73 i rozszerzony o obsługę wbudowanej przeglądarki plików PDF, zaprojektowanej jako wewnętrzny dodatek. Nowa wersja dodaje także lokalne przechowywanie certyfikatów klienta i obsługę certyfikatów z QML. Dodano interfejs API powiadomień internetowych. Zaimplementowano obsługę definiowania przechwytywaczy żądań URL;
  • Moduł Qt Network dla gniazd SSL dodał obsługę bezpiecznych kanałów oraz możliwość sprawdzenia stanu certyfikatów za pomocą protokołu OCSP (Online Certyfikat Status Protocol). Do obsługi SSL na systemach Linux i Android wykorzystano nową gałąź biblioteki OpenSSL 1.1;
  • W module Qt Multimedia dla VideoOutput typu QML dodana została obsługa ciągłego odtwarzania (bez przerw pomiędzy różnymi treściami, kontrolowana przez właściwość FlushMode). Dla systemów Windows i macOS dodano możliwość wykorzystania frameworka GStreamer. Dodano obsługę ról audio dla Androida;
  • Moduł Qt KNX został zaktualizowany o obsługę standardu o tej samej nazwie do sterowania automatyką domową. Dodano API umożliwiające nawiązywanie bezpiecznych połączeń klientów z serwerem KNXnet, za pomocą którego można bezpiecznie przesyłać komunikaty na magistralę KNX i sterować urządzeniami obsługującymi KNX;
  • Flaga rozwoju eksperymentalnego została usunięta z API C++ modułu Qt OPC UA, który zapewnia obsługę standardu komunikacji przemysłowej OPC/UA. Dodano eksperymentalne API dla QML;
  • Dodano nowy eksperymentalny moduł Qt CoAP Constrained Application Protocol wraz z implementacją klienckiej części protokołu M2M służącego do tworzenia sieci urządzeń Internetu Rzeczy. Wdrożono obsługę DTLS (Datagram TLS) przez UDP;
  • Wprowadzono poprawki i udoskonalenia w zestawie modułów „Qt for Python” służących do tworzenia aplikacji graficznych w Pythonie przy użyciu Qt5 (programiści Pythona mają dostęp do większości API Qt C++). Qt dla Pythona bazuje na module PySide2 i kontynuuje jego rozwój (właściwie pierwsze wydanie PySide z obsługą Qt 5 oferowane jest pod nową nazwą);
  • Dodano nowy moduł eksperymentalny Qt Lottie, który udostępnia zaawansowane API QML umożliwiające renderowanie grafiki i animacji eksportowanych do formatu JSON za pomocą wtyczki Bodymovin do Adobe After Effects. Dzięki QtLottie projektant może przygotować efekty animacji w wygodnej aplikacji, a programista może bezpośrednio podłączyć wyeksportowane pliki do interfejsu aplikacji na QtQuick. QtLottie zawiera wbudowany mikrosilnik do wykonywania animacji, kadrowania, nakładania warstw i innych efektów. Silnik jest dostępny poprzez element QML LottieAnimation, którym można sterować z poziomu kodu QML w taki sam sposób, jak każdym innym elementem QtQuick;
  • Qt Wayland Compositor, wielowątkowy system renderowania dla urządzeń wbudowanych oparty na protokole Wayland, zapewnia obsługę protokołów linux-dmabuf-unstable-v1 i wp_viewporter. Do komponentów platformy Wayland dodano obsługę protokołu fullscreen-Shell-unstable-v1;
  • W module obsługującym platformę Android dodana została możliwość wykorzystania natywnych dialogów do pracy z plikami. Podniesiono wymagania minimalnej wersji platformy do Androida 5.0 (poziom API 21);
  • Qt 3D dodał obsługę importowania i eksportowania rendererów tekstur OpenGL. Zaimplementowano wstępną obsługę importowania scen glTF 2.0;
  • Moduły Qt Script są przestarzałe i zostaną usunięte w przyszłej wersji.
    Szybkie sterowanie Qt 1 i Qt XmlPatterns. Moduł Qt Canvas 3D został usunięty.

Źródło: opennet.ru

Dodaj komentarz