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

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

После девяти месяцев разработки представлен релиз кроссплатформенного фреймворка Qt 5.6, продолжившего развитием ветки Qt 5.x и отнесённого к выпускам с длительным сроком поддержки. Qt 5.6 стал первым LTS-выпуском Qt 5.x, для которого обновления будут выпускаться в течение трёх лет, в то время как обычные выпуски поддерживаются только год. Время поддержки прошлого LTS-выпуска Qt 4.8 истекло, пользователям Qt 4.x рекомендуется перейти на Qt 5.

При разработке релиза Qt 5.6 использовалась новая система непрерывной интеграции Coin, позволившая повысить оперативность выявления ошибок и перейти на новый уровень тестирования, охватывая различные платформы и конфигурации. При подготовке LTS-выпуска значительное внимание было уделено повышению качества и обеспечению паритета функциональности для различных платформ.

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

  • Полная переработка кода для кроссплатформенной поддержки экранов со сверхвысоким разрешением (High-DPI). Новая реализация позволяет автоматически масштабировать интерфейс приложений, написанных для обычных экранных разрешений, для экранов с высоким DPI. Размеры шрифтов, элементов окон, пиктограмм и прочих графических объектов автоматически подстраиваются под имеющееся разрешение. В конфигурациях с несколькими мониторами подобное масштабирование производится на лету при перемещении окна между обычным и High-DPI экраном.
  • Значительное улучшение браузерного движка Qt WebEngine, который обновлён до кодовой базы Chromium 45 и получил возможность использования плагинов с интерфейсом PPAPI (Pepper), например, в форме PPAPI-плагина поставляется Flash для Chrome. Добавлена возможность настройки работы через прокси. Портирован WebActions API. Добавлен новы модуль Qt WebEngineCore, предоставляющий низкоуровневый API для обработки web-контента. На платформе Linux порция поставляемых в составе библиотек заменена на использование штатных системных библиотек дистрибутивов.
  • Из поставки удалены Webkit и Qt Quick 1, которые оставлены в репозиториях исходных текстов, но не вошли в состав пакета Qt 5.6. Qt Script пока оставлен в Qt 5.6, но имеет статус устаревшей технологии;
  • В разряд полностью поддерживаемых переведён модуль Qt Location, предоставляющий приложениям простые средства для интеграции карт, навигации, пометки интересных мест (POI). Модуль поддерживает интерфейс плагинов, через который можно подключать бэкенды для работы с различными сервис-провайдерами и создавать расширения API. В текущем выпуске обеспечена поддержка сервисов HERE, Mapbox и Open Street Map;
  • В инфраструктуру виджетов для создания панелей добавлена поддержка программного изменения размера панели, создания плавающих панелей и перегруппировки вкладок;
  • В Qt Multimedia добавлен новый QML-тип PlayList и Audio role API для медиаплееров;
  • В Qt Canvas 3D добавлена возможность использования объектов Qt Quick Items в качестве текстур и возможность прямой отрисовки в фоновые и активные сцены QML;
  • Обеспечена полноценная поддержка платформы Windows 10 и подготовка бинарных сборок Qt для Visual Studio 2015. Добавлены компоненты для использования Linux-инструментов при разработке встраиваемых решений на ПК под управлением Windows.
  • Улучшена совместимость кодовой базы со стандартом C++11 и STL;
  • Обновлена реализация виртуальной клавиатуры Qt Virtual Keyboard, в которой появилась поддержка распознавания рукописного ввода;
  • В стеке Boot to Qt, нацеленном на предоставление полноценных загрузочных мобильных систем с окружением на базе Qt и QML, расширены средства кастомизации и возможности по использованию компонентов Qt в сборках на базе системы Yocto;
  • Добавлен новый класс QVersionNumber;
  • В QNetworkAccessManager добавлена поддержка перенаправления HTTP-запрсоов;
  • Улучшена поддержка OpenGL ES 3;
  • Для платформы Android добавлена поддержка Qt NFC, для OS X - Qt Positioning, для WinRT - Qt WebView;
  • Из соображений безопасности из бинарной сборки исключены библиотеки MNG и JPEG2000. Данные библиотеки по-прежнему можно использовать, собрав из исходных текстов;

В инсталлятор добавлена возможность установки трёх экспериментальных модулей, который будут включены в состав Qt 5.7:

  • Qt Quick Controls 2 - полностью переписанный и оптимизированный набор компонентов для построения графических интерфейсов для приложений на Qt Quick;
  • Qt 3D - многопоточный 3D-движок для приложений на Qt C++ и Qt Quick;
  • Qt SerialBus - поддержка шин CANBus и ModBus для организации взаимодействия приложений;

Одновременно представлен корректирующий выпуск среды разработки Qt Creator 3.6.1, примечательный исправлением ошибок и переходом на формирование сборок с использованием Qt 5.6.