Выпуск фреймворка Qt 5.8

в 21:07, , рубрики: Без рубрики

Сегодня, спустя 7 месяцев с момента предыдущего значительного выпуска, вышла версия 5.8 кроссплатформенного фреймворка Qt.

Qt позволяет разрабатывать приложения при помощи C++ и декларативного языка программирования QML, поддерживает все основные десктопные и мобильные платформы, а также некоторые встраиваемые и имеет открытый исходный код. Существует коммерческая версия Qt, содержащая дополнительные проприетарные модули.

В этом выпуске появилась новая система конфигурации, позволяющая включить в сборку только необходимый функционал (Qt Lite), стабилизация некоторых экспериментальных модулей, а также новые экспериментальные модули и удаление устаревших.

Выпуск фреймворка Qt 5.8 - 1

Qt Lite

В новой версии появилась возможность тонко настроить сборку Qt для включения только необходимого функционала. Для этого, была значительно переработана система конфигурирования. Пример использования Qt Lite для небольшого приложения на QML:

Выпуск фреймворка Qt 5.8 - 2

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 5.8 - 3

  • Включен в состав Qt и Qt SCXML, также доступный в качестве предварительной версии в предыдущем выпуске. Модуль позволяет использовать конечные автоматы SCXML.
    Также в Qt Creator 4.2 добавлена возможность редактировать диаграммы состояния.

Выпуск фреймворка Qt 5.8 - 4

  • В состав 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.

Дополнительная информация

Автор: BlackRaven86

Источник

Поделиться

* - обязательные к заполнению поля