Релиз фреймворка Qt 5.13
После полугода разработки подготовлен релиз кроссплатформенного фреймворка Qt 5.12. Исходные тексты компонентов 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 и обработчиков запросов;
- В модуле 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;
© OpenNet