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

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

  • Поддержка использования C++11 в модулях и библиотеках Qt (для сборки приложений поддержка C++11 была доступна и ранее);
  • Новые модули:
    • Qt Quick Controls 2 - полностью переписанный и оптимизированный набор компонентов для построения графических интерфейсов для приложений на Qt Quick. Снижение потребления памяти и оптимизация производительности позволяют использовать Qt Quick Controls 2 не только для создания приложений рабочего стола, но и для построения интерфейсов мобильных и встраиваемых решений. Архитектура Qt Quick Controls 2 основана на применении шаблонов, позволяющих создавать полностью новые элементы интерфейса на основе предоставляемых компонентов. Разработчику также предлагается гибкая система быстрого создания собственных стилей и методов взаимодействия с пользователем. В базовый состав входит три предопределённых стиля: минималистичный (по умолчанию, обеспечивает максимальную производительность), Material Design (Google) и Universal Design (Microsoft);
    • Qt 3D - многопоточный 3D-движок для приложений на Qt C++ и Qt Quick, позволяющий легко обрабатывать и встраивать 3D-контент в приложения. Qt 3D не ограничивается системой рендеринга и предоставляет полноценный расширяемый фреймворк для любых типов симуляции. В состав также входит компонент Qt3DInput для использования устройств ввода в трёхмерном пространстве, таких как 3D-мыши, игровые пульты и джойстики. Библиотека Qt3DExtras предоставляет типовой набор геометрических примитивов и материалов. Для создания 3D-сцен развивается редактор Qt 3D Scene Editor, а также специальные инструменты профилирования и отладки;
    • Qt Wayland Compositor (Technology Preview) - многопоточная система отрисовки для встраиваемых устройств, использующая протокол Wayland. Модуль может использоваться для создания собственных композитных серверов Wayland, применяя QML или C++ API. В состав также входит базовая реализация панели запуска программ и мозаичного оконного менеджера, написанных целиком на QML. Имеется поддержка стандарта XDG-Shell и возможность работы в системах с несколькими экранами. В качестве примера применения Qt Wayland Compositor развивается рабочий стол Grefsen;
    • Qt SerialBus - поддержка шин CANBus и ModBus для организации взаимодействия приложений;
    • Qt SCXML (Technology Preview) - фреймворк с реализацией State Chart API;
    • Qt Gamepad - модуль для интеграции gamepad вприложениях на C++ и QML. Поддерживаются платформы Windows, Linux, Android и iOS;
  • Включение в поставку модулей, ранее поставляемых только в коммерческой редакции. Из пока не открытых модулей остаётся Qt Quick Compiler, для открытия которого требуется дополнительное время. Код модулей открыт под лицензией GPLv3:
    • Qt Data Visualization - набор готовых шаблонов диаграмм для 3D-визуализации данных;
    • Qt Purchasing - кроссплатформенный API для организации покупок в каталогах-магазинах приложений;
    • Qt Virtual Keyboard - реализация виртуальной клавиатуры с поддержкой рукописного ввода;
    • Qt Quick 2D Renderer - возможность запуска приложений Qt Quick 2 на системах без аппаратной поддержки OpenGL;
    • Qt Charts - построение диаграмм и 2D-визуализация данных;
  • В Qt Core цикл обработки событий переведён с select() на poll(), что позволило обеспечить обработку более 1024 файловых дескрипторов. В атомарных классах задействован std::atomic;
  • В Qt Gui включены оптимизации масштабирования изображений с использованием инструкций NEON, использующиеся в процессорах архитектуры ARM. Добавлены оптимизированные функции-обвязки для OpenGL;
  • В QML и Qt Quick добавлена поддержка JIT для архитектуры WinRT, и 64-разрядных платформ ARM. Добавлена поддержка отладки одновременно нескольких экземпляров QJSEngine. Улучшена интеграция с системой профилирования и инспектирования;
  • В Qt NFC добавлена поддержка платформы Android;
  • Qt WebEngine обновлён до Chromium 49. Добавлена поддержка Drag'n'Drop, печати в PDF, проверки орфографии, индикации воспроизведения звука, воспроизведения защищённого DRM-видео.
  • В состав включён набор Qt for Device Creation, предназначенный для создания полноценных загрузочных мобильных систем с окружением на базе Qt и QML. Системная честь основана на наработках проекта Yocto. В новом выпуске добавлена поддержка новых плат: Rasberry Pi 3, NVIDIA DRIVE CX (Tegra X1, 64bit ARM) и i.MX7. Microsoft Windows переведена в разряд полностью поддерживаемых хост-платформ для разработки встраиваемых Linux-продуктов. Представлена экспериментальная поддержка механизма Qt-based Over-the-Air (OTA) для автоматизации получения и установки обновлений по сети.