Випуск фреймворку 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 і Універсальний теми "system", яка автоматично вибирає темну або світлу тему, в залежності від налаштувань системи. З'явилася підтримка hover-ефектів в стилях Material і Універсальний, а також 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.
Додаткова інформація
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.