Evgenii Legotckoi
Evgenii Legotckoi25 января 2017 г. 10:07

Qt 5.8 released

23-го января Qt Company анонсировала выпуск Qt 5.8, с рядом нововведений, которые носят достаточно глобальный характер. Давайте ознакомимся с ними.

Qt Lite

Одной из главных тематик Qt 5.8 стало сделать так, чтобы Qt был более гибким и лёгким к адаптации к целям пользователей, в частности для разработчиков встраиваемых систем. Qt Lite является кодовым именем проекта, целью которого является внедрение данных целей.

Целью разработчиков Qt Company стало сделать Qt проще в настройке под нужды разработчиков с избеганием использования функционала, который не требуется в проекте. Это приносит значительную экономию в размере скомпилированных библиотек Qt и разрабатываемого приложения.

Внедряемая система является длинным путешествием, где была переписана значительная часть системы, которая отвечает за конфигурирование Qt. Эта новая система очищена от того, что наросло за последние 15 лет, и это также может привести к несоответствиям с тем, как Qt был сконфигурирован на различных платформах.

Как результат, получена одна унифицированная система для настройки различных частей Qt. В дополнение пользователям даётся более гибкая в настройке библиотека Qt. И также призвана облегчить бремя разработчиков Qt Company в поддержке всех различных способов настройки и использования Qt.


Использование новой системы позволит создать сборку Qt, которая подходит для конкретного случая. Можно будет отказаться от того функционала, который не требуется, что позволит сохранить ПЗУ и ОЗУ при развёртывании приложения на встраиваемом устройстве. Чтобы показать идею о возможностях сохранения ресурсов, ниже приведено изображение, которое показывает запросы Qt стека при запуске небольшого приложения на QML:

Как вы можете видеть, новая система настройки позволяет значительно уменьшить размер и сохранить более чем 60% в размере бинарника по сравнению с Qt 5.6.

Qt Wayland Compositor

API Qt Wayland Compositor , которое было включено как технология на предварительном ревью в Qt 5.7, теперь  полностью поддерживается в Qt 5.8. Модуль позволяет легко создавать свой собственный Wayland Compositor.

Qt Wayland Compositor позволяет легко внедрять ваше собственный домашний экран (home screen) и менеджер приложений. Это позволяет создание мощных и гибких встраиваемых систем, где Вы имеете несколько приложений, которые имеются свои собственные пользовательские интерфейсы. Qt Wayland Compositor поддерживает обработку несколько экранов лёгкими и прозрачными способами. Это возможно как с QML так и C++ API.

Для большей информации смотрите API documentation и and примеры .

Communication и Networking

Qt Serialbus сейчас внедрена полностью в Qt 5.8. Это позволяет использовать Qt API для связи и протоколам по последовательным интерфейсамs. В то время, как существует множество различных API, эта версия включает CAN и Modbus.

Qt Network и Web Sockets полностью поддерживают TLS PSK. Qt Network сейчас поддерживает настраиваемые параметры Diffie-Hellman и HTTP/2 в QNetworkAccessManager .

Qt Bluetooth поддерживает периферийные устройства BTLE под macOS и iOS, а также поддерживает центральные устройства BTLE в WinRT.

В Qt 5.8 также добавлен новый модуль Qt Network Authorization как предварительная технология на предварительном ревью, и в данный момент поддерживает OAuth 1 и 2 схемы аутентификации.

Qt QML и Quick

Довольно много вещей произошло в Qt QML и Qt Quick. Движок QML получил поддержку кеширования бинарных данных QML и JS на диске, что снижает скорость запуска и потребление памяти движком. Только коммерческая версия компилятора Qt Quick пока что поддерживается в Qt 5.8, но планируется вливание этих изменений в будущем для улучшения производительности и более интегрированных решений.

Qt Quick scene graph претерпела значительные изменения, что позволяет уменьшить зависимость от OpenGL. Это позволяет добавить экспериментальную поддержку бэкэнда Direct3D 12 для Qt Quick, а включить создание других бэкэндов, базирующихся, например, на Vulkan Graphics API.

В дополнение, сейчас графическая сцена поддерживает частичное обновление экрана, если только малая часть была изменена. Это даёт немного большую производительность для Qt Quick 2D отрисовки.

Также эти изменения в графической сцене представлены как возможность перенести функционал отрисовки Qt Quick 2D непосредственно в Qt Quick. Это означает, что отрисовщика Qt Quick 2D больше не существует, как отдельного модуля в Qt 5.8.

Большие изменения были сделаны также под капотом обработки событий от мыши и сенсорных событий, объединяя их в новом классе QQuickPointerEvent. Это закладывает основу для будущего улучшения обработки событий мыши и сенсора, но не влияет на данный момент на код, использующий Qt Quick.

Qt Quick Controls 2 также получили несколько новых типов, таких как диалоговые окна, округлые кнопки и разделители инструментов. Стили Material и Universal некоторые новые эффекты и поддержку системной темы.

Qt Webengine

Как всегда версия Chromium, используемся Qt Webengine была обновлена до версии 53. Одной важной отличительной чертой является добавление поддержки печати Web страниц. Также было добавлено много небольших функциональных изменений, среди них новый QML API для определения пользовательских диалогов, всплывающих подсказок и контекстных меню, и поддержка просмотра исходного кода страница.

Qt SCXML

Qt SCXML полностью поддерживает в Qt 5.8. Модуль делает тривиальную интеграцию SCXML основанную на машине состояний в Qt. Это опирается непосредственно на Qt Statemachine Framework , и расширяет его как с SCXML так и с C++ компилятором и запуском в рантайме, который позволяет загрузку SCXML основанного на машине состояний.

Вместе с модулем Qt SCXML, Qt Creator 4.2 получил поддержку редактирования графиков состояний.

Новые технологии в предварительном рассмотрении

Также в Qt 5.8 имеется новый функционал, который был выбран в качестве технологий на предварительном рассмотрении.

Qt сейчас компилируется как для Apple TV, так и для watchOS. В тоже время значительная часть функционала, поддерживаемая на iOS, также должна работать и на tvOS, watchOS поддержка ограничена не графическим функционалом Qt.

Qt Speech добавлен как новый модуль для поддержки преобразования текста в речь.

Другие улучшения

После первичного выпуска Qt 3D с Qt 5.7, силы были сфокусирована на доработке модуля. Было сделано большое количество исправлений и улучшения производительности для этого модуля.

Qt Charts получили графики типа Candlestick (Японская свеча), и также сделано API QOpenGLTextureBlitter API в публичном Qt Gui.

Встраиваемые платформы поддержали Qt для создания устройств с лучшей поддержкой многоэкранных системы с использованием eglfs QPA плагина и поддержкой экранов с развёрткой на 90/180 градусов.

Наконец, многие изменения произошли в базовом коде для улучшения использования функционала, предлагаемого C++11.

Источник Qt Blog

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
г
  • ги
  • 23 апреля 2024 г. 15:51

C++ - Тест 005. Структуры и Классы

  • Результат:41баллов,
  • Очки рейтинга-8
l
  • laei
  • 23 апреля 2024 г. 9:19

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:10баллов,
  • Очки рейтинга-10
l
  • laei
  • 23 апреля 2024 г. 9:17

C++ - Тест 003. Условия и циклы

  • Результат:50баллов,
  • Очки рейтинга-4
Последние комментарии
k
kmssr8 февраля 2024 г. 18:43
Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Анатолий Кононенко5 февраля 2024 г. 1:50
Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
EVA
EVA25 декабря 2023 г. 10:30
Boost - статическая линковка в CMake проекте под Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
J
JonnyJo25 декабря 2023 г. 8:38
Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
G
Gvozdik18 декабря 2023 г. 21:01
Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Сейчас обсуждают на форуме
G
Gar22 апреля 2024 г. 5:46
Clipboard Как скопировать окно целиком в clipb?
DA
Dr Gangil Academics20 апреля 2024 г. 7:45
Unlock Your Aesthetic Potential: Explore MSC in Facial Aesthetics and Cosmetology in India Embark on a transformative journey with an msc in facial aesthetics and cosmetology in india . Delve into the intricate world of beauty and rejuvenation, guided by expert faculty and …
a
a_vlasov14 апреля 2024 г. 6:41
Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
Павел Дорофеев
Павел Дорофеев14 апреля 2024 г. 2:35
QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь
f
fastrex4 апреля 2024 г. 4:47
Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…

Следите за нами в социальных сетях