Релиз фреймворка Qt 5.13

После полугода разработки подготовлен релиз кроссплатформенного фреймворка Qt 5.13. Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2, инструменты Qt для разработчиков, такие как Qt Creator и qmake, а также некоторые модули поставляются под лицензией GPLv3.

Основные новшества:

  • Обеспечена полноценная поддержка модуля «Qt for WebAssembly» (ранее был экспериментальным), который позволяет компилировать графические приложения на базе Qt в виде модулей на WebAssembly, которые можно запускать непосредственно в web-браузере. Для компиляции применяется Emscripten. OpenGL транслируется в WebGL;
  • Расширены возможности модуля Qt GUI, который обобщает классы, связанные с интеграцией с оконными системами, обработкой событий, интеграцией с OpenGL и OpenGL ES, 2D-графикой, работой с изображениями, шрифтами и текстом. В новой версии добавлен новый API
    QImage::convertTo для преобразования форматов изображений. В класс QPainterPath добавлены новые методы clear, reserve и capacity;

  • В модуле Qt QML, предоставляющем средства для разработки интерфейса при помощи языка QML, улучшена поддержка перечисляемых типов, определённых в коде на C++. Оптимизирована обработка значений «null» на стадии компиляции. Добавлена возможность генерации таблиц функций на 64-разрядных системах Windows, позволяющих выполнить раскручивание стека (unwind) для JIT-скомпилированных функций;
  • В Qt Quick в объекте TableView добавлена возможность скрытия столбцов и строк таблиц;
  • В Qt Quick Controls 2 добавлен тип SplitView для горизонтального или вертикального размещения элементов с отображением перемещаемого разделителя между каждым элементом. Для пиктограмм добавлена свойство, позволяющее управлять их кэшированием;
  • Web-движок Qt WebEngine обновлён до состояния Chromium 73 и расширен поддержкой встроенного PDF-просмотрщика, оформленного в виде внутреннего дополнения. В новом выпуске также добавлено хранилище локальных клиентских сертификатов и поддержка сертификатов из QML. Добавлен API Web Notifications. Реализована поддержка определения перехватчиков запросов URL;
  • В модуле Qt Network для SSL-сокетов добавлена поддержка защищённых каналов (Secure Channel) и возможность проверки статуса сертификатов при помощи протокола OCSP (Online Certificate Status Protocol). Для поддержки SSL в Linux и Android задействована новая ветка библиотеки OpenSSL 1.1;
  • В модуле Qt Multimedia для QML типа VideoOutput добавлена поддержка неразрывного воспроизведения (без пауз между разным контентом, управляется свойством flushMode). Для Windows и macOS добавлена возможность использования фреймворка GStreamer. Для Android добавлена поддержка звуковых ролей;
  • Обновлён модуль Qt KNX с поддержкой одноимённого стандарта для управления домашней автоматизацией. Добавлен API для установки безопасных клиентских соединений с сервером KNXnet, которые можно использовать для защищённой отправки сообщений в шину KNX и управления устройствами с поддержкой KNX;
  • Снят признак экспериментальной разработки с C++ API модуля Qt OPC UA, обеспечивающего поддержку промышленного коммуникационного стандарта OPC/UA. Добавлен экспериментальный API для QML;
  • Добавлен новый экспериментальный модуль Qt CoAP Constrained Application Protocol) с реализацией клиентской части протокола M2M, применяемого для создания сетей из устройств интернета вещей. Реализована поддержка DTLS (Datagram TLS) поверх UDP;
  • Внесены исправления и улучшения в набор модулей «Qt for Python» для создания графических приложений на языке Python с использованием Qt5 (разработчикам на языке Python предоставляется доступ к большей части C++ API Qt). Qt for Python основан на модуле PySide2 и продолжает его развитие (по сути под новым именем предлагается первый выпуск PySide с поддержкой Qt 5);
  • Добавлен новый экспериментальный модуль Qt Lottie, предоставляющий расширенный API для QML, позволяющий отрисовывать графику и анимацию, экспортированную в формате JSON при помощи плагина Bodymovin к пакету Adobe After Effects. Благодаря QtLottie дизайнер может подготовить анимационные эффекты в удобном для себя приложении, а разработчик напрямую подключить экспортированные файлы к интерфейсу приложений на QtQuick. QtLottie включает в себя встроенный микродвижок для выполнения анимации, обрезки, обработки слоёв и других эффектов. Движок доступен через QML-элемент LottieAnimation, которым можно управлять из QML-кода по аналогии с любыми другими элементами QtQuick;
  • В Qt Wayland Compositor, многопоточной системе отрисовки для встраиваемых устройств на базе протокола Wayland, обеспечена поддержка протоколов linux-dmabuf-unstable-v1 и wp_viewporter. В компонентах платформы для Wayland добавлена поддержка протокола fullscreen-shell-unstable-v1;
  • В модуле для поддержки платформы Android добавлена возможность использования родных диалогов для работы с файлами. Требования к минимальной версии платформы подняты до Android 5.0 (API level 21);
  • В Qt 3D добавлена поддержка импорта и экспорта обработчиков текстур OpenGL. Реализована начальная поддержка импорта сцен glTF 2.0;
  • Объявлены устаревшими и будут удалены в одном из следующих выпусков модули Qt Script,
    Qt Quick Controls 1 и Qt XmlPatterns. Удалён модуль Qt Canvas 3D.

Источник: opennet.ru