Разработчики Qt выпустили новую версию фреймворка — она будет поддерживаться ещё три года. По сравнению с прошлым LTS-релизом, в Qt 5.12 исправлено 2000 багов, добавлена полная поддержка Qt for Python, стандарта ECMAScript 7 и двоичного формата CBOR, превосходящего JSON по гибкости и количеству типов данных.
Основные изменения в Qt 5.12
Команда проекта обеспечила полную поддержку Qt for Python, включая все Qt API. Пока что модуль доступен только для тестирования, а полноценный релиз состоится чуть позже. Таким образом, теперь с помощью Qt на Python можно создавать сложные графические приложения и пользовательские интерфейсы.
Кроме того, в Qt 5.12 доступна вторая превью-версия Qt for WebAssembly. Этот модуль позволяет компилировать Qt-приложения для запуска в любом современном браузере. Команда Qt утверждает, что, несмотря на статус превью, модуль довольно зрелый и функциональный и его можно использовать в работе.
Разработчики довели до стабильной версии ещё два модуля, которые в предыдущих релизах Qt значились как превью:
- Qt Remote Objects — делает обмен данными (IPC) между основными процессами Qt бесшовным, что позволяет раскрывать свойства, сигналы и слоты класса QObject другим процессам, вне зависимости от того, где они запущены.Qt WebGL Streaming Plugin — предназначен для потоковой передачи данных UI приложения любому современному браузеру.
В новом релизе Qt QML получил поддержку стандарта ECMAScript 7 для работы с наиболее современной версией JavaScript и упрощения интеграции с JS-библиотеками.
В Qt Quick добавлен тип Item View — TableView, который работает более эффективно по сравнению с предыдущей реализацией, QQC1. Кроме того, появилась поддержка функции предварительной генерации текстур дальних областей, позволяющая создавать глифы, необходимые для отрисовки текста, во время компиляции, чтобы увеличить производительность приложения при его запуске. Pointer Handlers переименованы в Input Handlers и также полностью поддерживаются в Qt Quick — эта функция упрощает создание сложных жестовых взаимодействий с сенсорным экраном.
Остальные нововведения
- Qt Core — добавлен двоичный формат CBOR (Concise Binary Object Representation). Он похож на JSON, но обгоняет его по гибкости и количеству поддерживаемых типов данных. Кроме того, улучшен класс QRegularExpression, что позволило отказаться от старого класса QRegExp.Qt Network — добавлена поддержка DTLS (Datagram Transport Layer Security). На macOS и iOS теперь поддерживаются TLS-расширение ALPN и HTTP/2, действующее через бэкенд.Qt Gui — появилась поддержка Windows UI Automation, которая унифицирует использование разных инструментов ввода с помощью Windows Pointer Input Messages на Windows 8.Qt Location — добавлен обновлённый плагин MapBox и несколько API.Qt WebEngine — переписан на основе Chromium 69 и получил поддержку клиентских сертификатов.Qt for Automation — получил обновлённые модули KNX и MQTT, которые теперь поддерживают новые версии соответствующих протоколов.
Предыдущая версия фреймворка, Qt 5.11, вышла в мае 2018 года с обычной годовой поддержкой. Она была ориентирована на то, чтобы обеспечить доступность фреймворка на Windows, поэтому его переписали с нуля на основе Microsoft UI Automation.
Источник: