Релиз фреймворка Qt 5.8

После шести месяцев разработки состоялся релиз кроссплатформенного фреймворка Qt 5.8, продолжившего развитием ветки Qt 5.x. Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2, инструменты Qt для разработчиков, такие как Qt Creator и qmake, а также некоторые модули поставляются под лицензией GPLv3. Выпуск примечателен началом реализации идей, предложенных в рамках инициативы Qt Lite, нацеленной на предоставление возможности формирования сборок Qt, содержащих только необходимые компоненты.

Основные изменения:

  • Включены наработки по обеспечению гранулированной сборки, позволяющие собирать модули, выборочно активируя только необходимую функциональность. Отныне Qt позволяет не только манипулировать подключением отдельных модулей, но и управлять составом модулей. Отключенная функциональность не включается в сборку, что позволяет создавать урезанные конфигурации, пригодные для использования на встраиваемых системах с ограниченным размером оперативной памяти и хранилища. По предварительным оценкам новая система сборки позволяет уменьшить размер статически связанного приложения Qt Quick на 70%, по сравнению с Qt 5.6; 0_1485177777.png
  • С целью избавления Qt Quick от привязки к OpenGL и обеспечения независимости от графического API значительно переработана архитектура графической подсистемы, что дало возможность применения эффективных программных методов отрисовки на системах не поддерживающих OpenGL. Кроме программной отрисовки (QT_QUICK_BACKEND=software) также подготовлен бэкенд для DirectX 12 (QT_QUICK_BACKEND=d3d12). Функциональность модуля Qt Quick 2D Renderer интегрирована в Qt Declarative;
  • В движке выполнения QML реализована новая инфраструктура кэширования, позволяющая кэшировать QML-файлы в предкомпилированном бинарном представлении. Кэширование дало возможность значительно ускорить повторную загрузку QML-приложений и сократить потребление памяти. Поддержка упреждающей компиляции Qt Quick будет продолжена в рамках коммерческого продукта Qt Quick Compiler;
  • В Qt Quick Controls 2 добавлены новые QML-типы Dialog, DialogButtonBox, MenuSeparator, RoundButton и ToolSeparator, а также экспериментальные типы MenuBar, Menu, SystemTrayIcon, ColorDialog, FontDialog, MessageDialog, FileDialog и FolderDialog;
  • Переведены в разряд полностью поддерживаемых некоторые модули, ранее помеченные как экспериментальные (Technology Preview):
    • Wayland Compositor — многопоточная система отрисовки для встраиваемых устройств, использующая протокол Wayland. Модуль может использоваться для создания собственных композитных серверов Wayland, применяя QML или C++ API. В состав также входит базовая реализация панели запуска программ и мозаичного оконного менеджера, написанных целиком на QML. Имеется поддержка стандарта XDG-Shell и возможность работы в системах с несколькими экранами. В качестве примера применения Qt Wayland Compositor развивается рабочий стол Grefsen; 0_1485178219.png
    • SCXML — фреймворк с реализацией State Chart API; 0_1485177843.png
    • Serial Bus — модуль для для организации доступа приложений к различным промышленным интерфейсам при помощи шин CANBus и ModBus;
  • В состав включён экспериментальный модуль Qt Speech, предоставляющий средства для синтеза речи. Речевое сопровождение может применяться для повышения доступности приложений для людей с ограниченными возможностями или для реализации новых средств фонового информирования пользователя, что особенно востребовано для вывода уведомлений в приложениях для автомобильных информационно-развлекательных систем. В Linux преобразование текста в речь осуществляется при помощи библиотеки Speech Dispatcher (libspeechd), а на других платформах через штатный API операционной системы;
  • Добавлен экспериментальный модуль Qt Network Authentication с реализаций протоколов аутентификации OAuth 1 и OAuth 2;
  • Объявлен устаревшим модуль Qt Script, который будет удалён в одном из будущих выпусков.

© OpenNet