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

Материал из Викиновостей, свободного источника новостей

22 мая 2018 года

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

Основные новшества:

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

Байткод также можно компилировать отдельно при помощи qmlcompiler и включать в поставку продукта. Для выполнения байткода применяется новый интерпретатор, который на 80-90% опережает по производительности интерпретатор, применявшийся в прошлом выпуске. Поверх интерпретатора байткода применяется Hotspot JIT, во всех областях обгоняющий по производительности старый JIT;

  • В Qt Quick добавлена поддержка загрузки сжатых текстур, поставляемых в форматах ktx и pkm, что позволяет сократить потребление памяти и ускорить запуск приложения за счёт применения формата изображений, который напрямую может быть обработан GPU, без отдельных стадий распаковки изображений jpeg/png;
  • Представлена порция мелких улучшений в Qt Core, например, добавлены новые методы для более полной совместимости с STL. Классы QChar, QString, QTextBoundaryFinder, а также алгоритм обработки двунаправленного текста, приведены к полной совместимости со спецификацией Unicode 10;
  • В Qt Quick Controls 2 добавлено множество мелких новшеств и исправлений, таких как свойство auto-repeat для кнопок, улучшенное позиционирование для ScrollBars и более качественная настройка стилей для SpinBoxes;
  • Значительно переработан диалог вывода на печать для платформы Linux, расширена поддержка всех опций, предоставляемых системой печати CUPS;
  • В Qt Widgets проведена работа по устранению ошибок. В классе QLineEdit добавлена поддержка режима быстрого выделения текста мышью;
  • В Qt Location добавлена экспериментальная поддержка пошаговой навигации (turn-by-turn). Представлен API для создания картографических объектов, не привязанных к классу QQuickItems. Значительно увеличена производительность объектов MapPolyline, в которых также появилась поддержка слоёв в комбинации с элементами объекта Map. API Routing и Places доработаны для поддержки расширений,

добавлен новый элемент WayPoint. В плагине MapBox появилась поддержка геокодирования и объектов Places;

  • Qt WebEngine обновлён до кодовой базы Chromium 65. Добвлена поддержка встроенных инструментов для web-разработчиков, не требующая запуска отдельного браузера;
  • В набор Qt for Device Creation, предназначенный для создания полноценных загрузочных мобильных систем с окружением на базе Qt и QML, добавлена возможность использования графических слоёв на базе оборудования, поддерживающего аппаратный композитинг (VSP2), что позволяет повысить производительность, снизить энергопотребление и реализовать такие возможности как вывод видео в нижележащем слое;
  • В классе SerialBus улучшена поддержка CAN Bus, а в Bluetooth поддержка BTLE. Обновлён модуль QtKNX с поддержкой одноимённого стандарта для управления (Архивная копия от 11 августа 2020 на Wayback Machine) домашней автоматизацией. Добавлен экспериментальный модуль с поддержкой промышленного коммуникационного стандарта OPC/UA;
  • В Qt Network для платформы iOS добавлена поддержка TLS-расширения ALPN, применяемого для установки защищённого соединения в HTTP/2. В QNetworkRequest добавлена операция Http2DirectAttribute для запуска сеанса HTTP/2 без первого согласования соединения;
  • Расширена поддержка средств для людей с ограниченными возможностями, предоставляемых на платформе Windows. Связанный с accessibility код полдностью переписан с использованием Microsoft UI Automation вместо старого фреймворка Microsoft Active Accessibility;
  • Проведена работа по улучшению стилей виджетов на платформе Windows, при использовании экранов с высокой плотностью пикселей (High-DPI);
  • Утилита qdoc переведена на libclang для разбора кода на C++
  • Удалена поддержка некоторых старых компиляторов и платформ, включая MSVC 2013, QNX 6.6 и macOS 10.10;
  • Представлена экспериментальная версия Qt для WebAssembly, которая позволяет компилировать графические приложения на базе Qt в виде модулей на WebAssembly, которые можно запускать непосредственно в web-браузере. Для компиляции применяется Emscripten. OpenGL транслируется в WebGL. Из поддерживаемых классов отмечаются QtBase, QtDeclarative, QtCharts, QtGraphicalEffects, QtQuickControls, QtQuickControls2, QtWebSockets,

QtMqtt;

  • Проходит тестирование Qt for Python, набор модулей для создания графических приложений на языке Python с использованием Qt5. На текущем этапе содержимое Qt for Python полностью аналогично PySide2.

Дополнение: Также отмечается порция улучшений, связанных с Wayland. Например, улучшена поддержка High-DPI, обеспечена возможность отката на X11 в случае недоступности Wayland (QT_QPA_PLATFORM="wayland;xcb"), добавлена поддержка ввода символов при помощи клавиши Compose, Qt Wayland добавлен в состав базовых сборок.

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Релиз фреймворка Qt 5.11», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.