Выпуск фреймворка Qt 5.8
Сегодня, спустя 7 месяцев с момента предыдущего значительного выпуска, вышла версия 5.8 кроссплатформенного фреймворка Qt.
Qt позволяет разрабатывать приложения при помощи C++ и декларативного языка программирования QML, поддерживает все основные десктопные и мобильные платформы, а также некоторые встраиваемые и имеет открытый исходный код. Существует коммерческая версия Qt, содержащая дополнительные проприетарные модули.
В этом выпуске появилась новая система конфигурации, позволяющая включить в сборку только необходимый функционал (Qt Lite), стабилизация некоторых экспериментальных модулей, а также новые экспериментальные модули и удаление устаревших.
Qt Lite
В новой версии появилась возможность тонко настроить сборку Qt для включения только необходимого функционала. Для этого, была значительно переработана система конфигурирования. Пример использования Qt Lite для небольшого приложения на QML:
Qt QML и Quick
Значительные изменения коснулись движка QML:
Добавлена поддержка кэширования бинарного представления файлов QML и JavaScript, что позволяет уменьшить время запуска и потребление памяти движка. Коммерческий модуль Qt Quick Compiler продолжает поддерживаться в Qt 5.8 и его планируется объединить с новой подсистемой кэширования в будущем.
Подсистема Qt Quick Scene Graph была переработана с целью уменьшения зависимости от OpenGL. Это дало возможность добавить экспериментальную поддержку бэкенда на основе Direct3D 12, а также в будущем добавить поддержку других бэкендов, таких как Vulkan.
Интегрирован бэкенд для программного рендеринга (Qt Quick 2D Renderer), который до этого поставлялся отдельным модулем. Также в него была добавлена поддержка частичного обновления экрана, если изменилась только небольшая часть сцены.
Была проведена чистка кода обработки событий с мыши и тачпада и объединение их в новый внутренний класс QQuickPointerEvent, как основа для будущих улучшений.
В Qt Quick Controls 2 были добавлены hover-эффекты и поддержка в стилях Material и Universal темы «system», которая автоматически выбирает темную или светлую тему, в зависимости от настроек системы. Появилась поддержка hover-эффектов в стилях Material и Universal, а также ripple-эффектов в стиле Material. Были добавлены следующие компоненты: Dialog, DialogButtonBox, MenuSeparator, RoundButton и ToolSeparator.
- В состав Qt Quick Controls 2 был добавлен экспериментальный модуль Qt Labs Platform, содержащий нативные для платформы компоненты QML. При отсутствии нативных компонентов на данной платформе, в качестве запасного варианта используется реализация на Qt Widgets. Модуль содержит следующие компоненты: ColorDialog, FileDialog, FolderDialog, FontDialog, Menu, MenuBar, MenuItem, MenuItemGroup, MenuSeparator, MessageDialog, StandardPaths и SystemTrayIcon.
Новые модули
- Доступный в качестве предварительной версии в предыдущем выпуске, Qt Wayland Compositor включен в состав Qt. Это модуль позволяет создать собственный композитор Wayland при помощи C++ или QML. Модель включает в себя расширения XDG shell, WL Shell и IVI application, а также API для создания своих расширений Wayland на C++ и QML.
- Включен в состав Qt и Qt SCXML, также доступный в качестве предварительной версии в предыдущем выпуске. Модуль позволяет использовать конечные автоматы SCXML.
Также в Qt Creator 4.2 добавлена возможность редактировать диаграммы состояния.
В состав Qt принят модуль Qt Serialbus, позволяющий работать с шинами CAN и Modbus.
Добавлена предварительная версия модуля для синтеза речи Qt Speech. На macOS, Android и Windows используется нативный бэкенд, на Linux — Speech Dispatcher (libspeechd).
- Также добавлена предварительная версия модуля Qt Network Authentication, реализующего аутентификацию по протоколам OAuth 1 и 2.
Изменения в существующих модулях
В Qt Network и Qt WebSockets добавлена поддержка шифрования TLS PSK. Также в Qt Network была добавлена поддержка настраиваемых параметров Diffie-Hellman и поддержка HTTP/2 в QNetworkAccessManager.
Движок Chromium в Qt WebEngine обновлен до версии 53 и получил поддержку печати веб-страниц. Было добавлено новое QML API для создания кастомных диалогов, всплывающих подсказок и контекстных меню. Добавлена поддержка проверки правописания при помощи Hunspell. Также была добавлена поддержка схем view-source: и некотрых chrome:. Версия для Windows теперь требует MSVC 2015 Update 2 или новее.
В Qt Charts добавлена возможность создавать диаграммы типа «японские свечи» (candlestick).
В Qt Bluetooth добавлена тестовая поддержка периферийной роли BLE для macOS и iOS и центральной роли для WinRT.
- Для модуля Qt Multimedia появилась возможность преобразования громкости между логарифмической и линейной шкалой при помощи QAudio: convertVolume () (и соответствующего API в QML). Компонент VideoOutput в QML теперь поддерживает рендеринг кадров в формате YUV 4:2:2 (YUYV, UYVY). В бэкенд GStreamer для Linux добавлена возможность мониторинга видео с QCamera при помощи QVideoProbe.
Удаленные и устаревшие модули
Модуль Qt Quick 2D Renderer был интегрирован в Qt Quick и больше не поставляется в виде отдельного модуля.
- Qt Script давно объявлен устаревшим, но пока все еще входит в состав Qt.
Поддержка платформ
Для платформы Android добавлены маркеры выделения текста с меню редактирования для копирования/вставки.
Предварительная версия поддержки платформ tvOS и watchOS от Apple.
Добавлена поддержка предварительно откомпилированных заголовков (pre-compiled headers) для iOS.
Для iOS, tvOS и watchOS теперь используется одна и та же библиотека для симулятора и для устройства.
- Поддержка поворота на 90 и 180 градусов программно-отрисованного контента (QWidget) для eglfs.
Дополнительная информация
- Анонс выпуска в блоге Qt
- Подробный список изменений
Комментарии (1)
24 января 2017 в 00:31
+4↑
↓
Няшка няшка няшка