Випуск фреймворку 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 Compiler, який планується інтегрувати в 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 і Universal.
Трохи скромного самопіару:)
Як приклад програми з інтерфейсом Qt Quick Controls 2.0, можна переглянути мій таймтрекер з відкритим вихідним кодом.
Qt 3D
Доступний в якості попередньої версії в двох попередніх випусках, Qt 3D включений до складу Qt. Це 3D-рушій з API на C++ і 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 Quick 1 і 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)
Додаткова інформація
- Анонс випуску в блозі Qt
- Докладний список змін
