Evgenii Legotckoi
Evgenii Legotckoi25 січня 2017 р. 10:07

Випущено Qt 5.8

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 приклади .

Зв'язок і Мережа

Qt Serialbus зараз впроваджена повністю в Qt 5.8. Це дозволяє використовувати Qt API для зв'язку та протоколів за послідовними інтерфейсами. У той час як існує безліч різних 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 хостинг.

Вам це подобається? Поділіться в соціальних мережах!

Коментарі

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

Qt - Тест 001. Сигналы и слоты

  • Результат:84бали,
  • Рейтинг балів4
Ua

Qt - Тест 001. Сигналы и слоты

  • Результат:42бали,
  • Рейтинг балів-8
ОК

Qt - Тест 001. Сигналы и слоты

  • Результат:47бали,
  • Рейтинг балів-6
Останні коментарі
ИМ
Игорь Максимов22 листопада 2024 р. 11:51
Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Evgenii Legotckoi
Evgenii Legotckoi31 жовтня 2024 р. 14:37
Django - Урок 064. Як написати розширення для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
A
ALO1ZE19 жовтня 2024 р. 08:19
Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Игорь Максимов05 жовтня 2024 р. 07:51
Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
d
dblas505 липня 2024 р. 11:02
QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Тепер обговоріть на форумі
Дмитрий
Дмитрий03 лютого 2025 р. 06:24
Создание deb-пакета. Как создать ярлык на рабочем столе после установки собственного deb-пакета? Всем привет. Сделал свой deb-пакет с программой. Всё устанавливается и работает. Ставлю по пути /usr/bin/my_application. Как для пользователя при установке пакета сразу создать ярлык на раб…
NW
Nayo Wai30 січня 2025 р. 09:22
не запускается компьютер!!! Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
n
nkly03 січня 2025 р. 02:52
Нужно запретить перемещение только некоторых итемов, остальные перемещать можно. Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
M
Marsel16 серпня 2023 р. 14:26
OAuth2.0 через VK, получение email Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.
Evgenii Legotckoi
Evgenii Legotckoi24 червня 2024 р. 15:11
добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.

Слідкуйте за нами в соціальних мережах