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

Virtual hosting with 10 percent discount
Virtual hosting with 10 percent discount
EVILEG offers reliable hosting with a 10% discount for virtual hosting and 5% for VPS
Support the author Donate

Comments

Only authorized users can post comments.
Please, Log in or Sign up
G
July 24, 2019, 4:20 a.m.
G0tzef

C++ - Test 005. Structures and Classes

  • Result:66points,
  • Rating points-1
VK
July 24, 2019, 3:49 a.m.
Viktoriia Komarova

C++ - Test 001. The first program and data types

  • Result:40points,
  • Rating points-8
G
July 24, 2019, 3:25 a.m.
G0tzef

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

  • Result:80points,
  • Rating points4
Last comments
July 23, 2019, 12:14 p.m.
IscanderChe

Вот ссылка: https://github.com/iscander-che/TestReportViewer .
July 23, 2019, 5:42 a.m.
Evgenij Legotskoj

Хорошо, хотя конечно это С, а не С++ )))) Но если вдруг будут проблемы, то решение через класс со статическими переменными вы видели ))
July 23, 2019, 5:33 a.m.
IscanderChe

"Не потребует каждый раз объявлять extern в других файлах". И так не требует. У меня в тестовом классе эти переменные используются без дополнительного объявления. Так же объявил их в cpp-файле о…
July 23, 2019, 5:28 a.m.
IscanderChe

В репозиторий могу сегодня вечером выложить. "Или ее надо компилить самому под дистриб?" Тут я не совсем понимаю, что вы имеете ввиду. Я выложу в репозиторий исходный код утилиты, и всё.
July 23, 2019, 4:32 a.m.
Evgenij Legotskoj

Есть комментарий по вашему коду. Лучше бы вместо глобальных переменных в стиле Си, то есть с использоавнием extern, написали бы статические переменные в рамках класса. IMHO - это будет выглядеть…
Now discuss on the forum
July 24, 2019, 4:57 a.m.
Mihailll

Это не помогает. Ниже мой код Rectangle{ //Flickable { //contentX: 100 id: rectangleForListView y: parent.height * 0.15 height: parent.height * 0.…
July 24, 2019, 3:17 a.m.
Evgenij Legotskoj

Ну вот теперь я несколько в ступоре. Запустите из консоли проект и посмотрите тогда, на что ругается. Также, следовало бы посмотреть в настройках самой виртуальной машины, что по поддержке OpenG…
July 23, 2019, 8:20 a.m.
Mihailll

Так работает QFile f1(dbAdress); f1.setPermissions(QFileDevice::WriteOther);
July 23, 2019, 7:11 a.m.
Pavel K.

Советую использовать нечто такое или такое
July 22, 2019, 10:50 a.m.
Pavel K.

Благодарю.Буду пробовать.
Looking for a Job?
5,000.00 руб. - 15,000.00 руб.
Дизайнер
Moskovskiy, Moscow, Russia
25,000.00 руб. - 30,000.00 руб.
Разработчик Qt/C++
Barnaul, Altai Krai, Russia

For registered users on the site there is a minimum amount of advertising

EVILEG
About
Services
Join us
© EVILEG 2015-2019
Recommend hosting TIMEWEB