Випуск фреймворку Qt 5.7

Вчора, через 3 місяці з моменту попереднього значного випуску, вийшла версія 5.7 міжплатформового фреймворку Qt.
Qt дозволяє розробляти додатки за допомогою C++ і декларативної мови програмування QML, підтримує всі основні десктопні та мобільні платформи, а також деякі вбудовані і має відкритий вихідний код. Існує комерційна версія Qt, містить додаткові власні модулі.
Новий випуск приніс зміну ліцензії, відкриття коду пропрієтарних модулів, перехід на C++11, стабілізація деяких експериментальних модулів, а також нові експериментальні модулі і видалення застарілих.


Зміна ліцензії
Починаючи з версії 5.7, Qt більше не випускається під LGPLv2.1. Тепер основні модулі (Qt Essentials) доступні під LGPLv3 і GPLv2. Утиліти і засоби розробки (у т. ч. Qt Creator) і нові модулі тепер випускаються під GPLv3. Ці зміни стосуються тільки версії з відкритим кодом і для користувачів комерційної версії все залишається як раніше.
Детальніше про зміну ліцензії можна почитати в цієї статті.
Перехід на C++11
Після випуску LTS-версії, з'явилася можливість припинити підтримку застарілих компіляторів в нових версіях і почати активно використовувати можливості C++11 в коді Qt. Список підтримуваних платформ тут.
З застосуванням засобів C++11, кодова база була значно почищена. QAtomic реалізований за допомогою std::atomic. Додано QTypeInfo для char16_t і char32_t.
Для використання контейнерів Qt у range for додана спеціальна функція qAsConst.
Відкриття коду пропрієтарних модулів
Починаючи з Qt 5.7, версія з відкритим кодом і проприетарная ідентичні. Під ліцензією GPLv3 у версії з відкритим кодом додані наступні модулі:
  • Qt Charts
  • Qt Data Visualization
  • Qt Virtual Keyboard
  • Qt Quick 2D renderer
  • Qt Purchasing (також доступна під LGPLv3)

Єдине виключення — Qt Quick Компілятор, який планується інтегрувати в Qt 5.8.
Qt Creator 4.0 додані наступні можливості пропрієтарної версії:
  • QML Profiler
  • Clang static analyzer
  • Qt Test Integration
Qt Quick Controls 2
Qt Quick Controls 2.0 — це нова реалізація бібліотеки компонентів для створення користувальницького інтерфейсу за допомогою Qt Quick.
Доступний у вигляді попередньої версії Qt 5.6 (під ім'ям Qt Labs Controls), цей модуль тепер входить до складу Qt. Нова версія більш легка і оптимізована для використання на вбудованих пристроях, побудована за принципом шаблонів, що дозволяють повністю змінити зовнішній вигляд компонентів і має, крім стандартної теми, підтримку стилів Material і Універсальний.
Трохи скромного самопіару :)В якості прикладу програми з інтерфейсом на Qt Quick Controls 2.0, можна подивитися мій таймтрекер з відкритим кодом.
Qt 3D
Доступний в якості попередньої версії у двох попередніх випусках, Qt 3D включений до складу Qt. Це 3D-движок з API на сі++ та QML, що дозволяє вбудувати в додаток 3D-контент. Крім візуалізації, доступно використання пристроїв введення в тривимірному просторі, включаючи такі спеціалізовані пристрої, як 3D-миші, геймпади, джойстики і все, що працює з Qt Gamepad. Існує також тестова версія бібліотеки геометричних примітивів, матеріалів і інших утиліт Qt3DExtras і Qt 3D Scene Editor — концепт редактора тривимірних сцен з можливістю імпорту в QML.
Qt Creator 4.0
До складу входить і нова версія інтегрованого середовища розробки для Qt. Крім вже згаданих можливостей з пропрієтарної версії Qt Creator 4.0 поліпшили підтримку проектів на CMake та Qt Quick Designer, об'єднали режими налагодження і профілювання, додали нову плоску тему і новий режим профілювання QML — Flamegraph.

Qt for Device Creation
Qt for Device Creation доданий функціонал OTA-обновленийможливість використання Windows для розробки і підтримка QNX. Windows Embedded більше не підтримується. Проведена робота по приведенню Qt for Device Creation до сумісності з Yocto Project.
Детальніше про зміни Qt for Device Creation можна прочитати в блог.
Нові модулі
Додана попередня версія модуля Qt Wayland Compositor, що дозволяє реалізувати власний композитор Wayland. Модуль націлений на використання у вбудованих пристроїв, яким потрібна підтримка декількох одночасно працюючих додатків. API модуля на C++ і QML, також є API для створення розширень Wayland на C++ і QML.
Також до складу Qt 5.7 включена попередня версія модуля Qt SCXML, який дозволяє використовувати кінцеві автомати SCXML.
Qt 5.7 входить попередня версія Qt Gamepad, що дозволяє працювати з геймпадом з C++ і QML. Підтримуються Windows, Linux, Android і iOS.
Зміни в існуючих модулях
  • Qt Core тепперь використовується poll() замість select(), що дозволяє обробляти більше 1024 відкритих файлових дескрипторів. Додана підтримка декількох каналів в QIODevice.
  • Qt QML отримав підтримку JIT на WinRT і 64-бітних ARM, можливість налагодження кількох QJSEngine одночасно, поліпшення в налагоджувач і профилировщике.
  • Qt GUI задіяні оптимізації NEON для масштабування зображень, оптимізовані обгортки для функцій OpenGL і прискорена робота з іконками з тим за допомогою кешу GTK+.
  • Движок Chromium в Qt WebEngine оновлено до версії 49 і отримав підтримку друку в PDF, drag'n'drop і програвання захищеного DRM HTML5-відео за допомогою плагіна Widevine.
  • Qt Multimedia покращено QML API Playlist, а також додана підтримка tvOS.
  • Додано тестова підтримка периферійної ролі BLE для Qt Bluetooth (тільки при використанні Bluez в якості бек-ендом).
  • Qt Sensors додано iio-sensor-proxy бекенд для Linux.
Видалені застарілі модулі
Модулі Qt Script і Qt Enginio видалені з поставки.
Підтримка платформ
  • Мінімальні версії мобільних платформ збільшені до iOS 7 і Android 4.1.
  • Qt for Device Creation Додана підтримка наступних пристроїв:
    • Плати NVIDIA DRIVE CX (Tegra X1, 64 bit ARM)
    • The Rasberry Pi 3 (32-бітний рехим)

    • Пристрої, засновані на i.MX7 (з використанням фреймбуфер та Qt Quick 2D renderer)
Додаткова інформація
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.