19 июня Qt Company выпустили Qt 5.13. Как всегда, релизы поставляются с новыми функциями, обновлениями, исправлениями ошибок и улучшениями. В Qt 5.13 Qt Company также сфокусировались на инструменте, который делает проектирование, разработку и развертывание программного обеспечения с Qt более эффективным как для дизайнеров, так и для разработчиков. Давайте рассмотрим некоторые основные моменты Qt 5.13, а также некоторые обновления в части инструментов.
Qt для WebAssembly
Qt для WebAssembly позволяет создавать приложения Qt для веб-браузеров и теперь полностью поддерживается. Qt для WebAssembly использует Emscripten для компиляции приложений Qt для веб-сервера, что позволяет вам запускать собственные приложения в любом браузере, поддерживающем WebAssembly, без необходимости установки на стороне клиента. Qt задает темп разработки C++ для WebAssembly, и Google недавно использовал Qt в качестве примера того, как запускать приложения C++ в браузере на событии Google I/O’19.
Qt GUI
Qt GUI суммирует классы для интеграции оконной системы, обработки событий, интеграции OpenGL и Open GLES, 2D-графики, базовых изображений, шрифтов и текста.
Qt QML
Модуль Qt QML предоставляет платформу для разработки гибких пользовательских интерфейсов на языке QML. Улучшена поддержку перечислений, объявленных в C++, JavaScript «null», поскольку значение привязки теперь оптимизируется во время компиляции, а теперь QML генерирует таблицы функций в 64-битных окнах, что позволяет разматывать стек с помощью функций JITed.
Qt Quick и Qt Quick Controls 2
Стандартная библиотека для написания приложений QML и элементы управления пользовательским интерфейсом для создания пользовательских интерфейсов также получили некоторые обновления. Добавлена поддержка TableView для сокрытия строк и столбцов, а для Qt Quick Controls 2 добавлен SplitView, элемент управления, который размещает элементы по горизонтали или по вертикали с перетаскиваемым разделителем между каждым элементом. Также добавлено свойство кэша в иконку.
Qt WebEngine
Qt WebEngine интегрирует быстрые веб-возможности Chromium в Qt, и его последняя версия теперь основана на Chromium 73. Добавлен просмотр PDF через внутреннее расширение Chromium, хранилище сертификатов локального клиента приложения, поддержка сертификатов клиентов из QML, API веб-уведомлений и поточно-ориентированные и специфичные для страницы перехватчики запросов URL.
Qt Network
Qt Network предоставляет набор API для программных приложений, использующих TCP/IP, и добавлена поддержка Secure Channel для сокетов SSL и поддержка сшивания OCSP. С Qt 5.13 теперь используют OpenSSL 1.1 для поддержки SSL-соединений на Linux и Android.
Qt Multimedia
Предоставляет богатый набор типов QML и классов C++ для обработки мультимедийного контента. Также добавлено непрерывное воспроизведение в QML VideoOutput, используя свойство flushMode, поддержка GStreamer для Windows/macOS и заголовков HTTP и аудио ролей для Android.
Qt KNX
Клиентская сторона клиента - подключение к KNXnet/IP серверу. Это соединение может использоваться для отправки сообщений на шину KNX и для управления функциями устройств KNX, обычно используемых в автоматизации зданий. В Qt 5.13 модуль получил защищенный клиентский API.
Qt OPC UA
Следующее поколение приложений Industry 4.0, основанных на архитектуре клиент/сервер, получило некоторые обновления. В основном, API C++ теперь полностью поддерживается, и добавлены технические предварительные версии API QML и API C++ защищенного клиента.
Qt CoAP (Tech Preview)
Qt CoAP (протокол ограниченных приложений) является реализацией протокола M2M на стороне клиента для использования с ограниченными узлами и сетями для Интернета вещей. В Qt 5.13 модуль получил поддержку дейтаграммы TLS (DTLS) по UDP.