Qt 5.8 released

Qt Lite, Qt 5.8, QML, Charts, Wayland, CAN, Modbus, Quick

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

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
Support the author Donate

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Donate

Hello, Dear Users of EVILEG!!!

If the site helped you, then support the development of the site financially, please.

You can do it by following ways:

Thank you, Evgenii Legotckoi

a
Feb. 25, 2020, 5:40 a.m.
ayb

C++ - Test 005. Structures and Classes

  • Result:83points,
  • Rating points4
DZ
Feb. 24, 2020, 2:47 p.m.
Dmitrij Zlobin

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:40points,
  • Rating points-8
p
Feb. 17, 2020, 2:41 p.m.
pstMem

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

  • Result:85points,
  • Rating points6
Last comments
Feb. 24, 2020, 3:54 a.m.
Evgenij Legotskoj

Добрый день. Там будет url, на который указывает ссылка тега a в пагинаторе, если правильно помню )) Написал этот код и забыл.
B
Feb. 24, 2020, 12:37 a.m.
BahaMeirman

Евгений Здравствуйте! Не могу понять вот эту часть кода: url: jQuery(this).attr('action') наверное здесь должен быть путь к url, тогда 'action' на какой url указывает?
Feb. 17, 2020, 3:22 a.m.
Evgenij Legotskoj

Добрый день. Это кастомный тег, помещается в файл, который находится в каталоге templatetags myapp/ templatetags/ myapp.py
B
Feb. 16, 2020, 1:36 p.m.
BahaMeirman

Добрый вечер! Монжно по подробней о теге get_companion? ссылка не работает.
Now discuss on the forum
a
Feb. 25, 2020, 8:06 a.m.
ayb

Да
Feb. 24, 2020, 12:04 p.m.
Evgenij Legotskoj

Добрый день. Вот пример с дружественного ресурса с движением камеры
Feb. 24, 2020, 6:29 a.m.
Evgenij Legotskoj

Qt не предоставляет функционала по запросу root прав во время выполнения программы. Поэтому нужно использовать платформозависимый функционал, для Linux это будет выглядеть так: #include…
Feb. 24, 2020, 3:47 a.m.
Evgenij Legotskoj

Добрый день. Что означает клиентская область? Это изображение? Вам нужно распознавать символы текста или всё-таки пользователь будет вводить текст с клавиатуры, просто в любом месте "абстр…
VZ
Feb. 21, 2020, 5:19 a.m.
Vladimir Zhitkovsky

void sendImage(int sessid, int type, int dest, int format, QString imgBase64Data){ QNetworkRequest request; request.setUrl(QUrl(ipAddress + "ctlapi/cmd=preparereportimg&sessid=…
EVILEG
About
Services
© EVILEG 2015-2019
Recommend hosting TIMEWEB