Компанія Qt Company опублікувала реліз фреймворку Qt 6.5, в якому продовжено роботу зі стабілізації та нарощування функціональності гілки Qt 6. У Qt 6.5 забезпечено підтримку платформ Windows 10+, macOS 11+, Linux (Ubuntu 20.04, openSUSE 15.4. /15), iOS 4+, Android 8.4+ (API 9.0+), webOS, WebAssembly, INTEGRITY та QNX. Вихідні тексти компонентів Qt поставляються під ліцензіями LGPLv14 та GPLv8.
Qt 6.5 отримав статус LTS-випуску, в рамках якого для користувачів комерційної ліцензії оновлення формуватимуться протягом трьох років (для решти оновлення публікуватимуться півроку до формування чергового значного випуску). Підтримка минулої LTS-гілки Qt 6.2 триватиме до 30 вересня 2024 року. Гілка Qt 5.15 супроводжуватиметься до травня 2025 року.
Основні зміни в Qt 6.5:
- Стабілізовано та переведено в розряд повністю підтримуваних модуль Qt Quick 3D Physics, що надає API для симуляції фізичних процесів, який можна використовувати разом з Qt Quick 3D для реалістичної взаємодії та переміщення об'єктів у 3D-сценах. Реалізація заснована на движку PhysX.
- Додано підтримку темного режиму оформлення платформи Windows. Автоматичне застосування активованого в системі темного оформлення та налаштування рамок та заголовка, якщо у додатку використовується стиль, що не змінює палітру. У програмі налаштувати власну реакцію на зміни у системній темі можна через обробку зміни властивості QStyleHints::colorScheme.
- У Qt Quick Controls стиль Material для Android приведений у відповідність до рекомендацій Material 3. Реалізовано повноцінний стиль для iOS. Додані API для зміни зовнішнього вигляду (наприклад, containerStyle для TextField або TextArea, або roundedScale для кнопок та спливаючих блоків).
- На платформі macOS у програмах, які використовують QMessageBox або QErrorMessage, забезпечено показ рідних для платформи діалогів.
- Для Wayland додано програмний інтерфейс QNativeInterface::QWaylandApplication для прямого звернення до рідних для Wayland об'єктів, які використовуються у внутрішніх структурах Qt, а також для отримання доступу до інформації про останні дії користувача, яка може бути потрібна для передачі розширенням протоколу Wayland. Новий програмний інтерфейс реалізований у просторі імен QNativeInterface, в якому також надаються виклики для доступу до рідних API платформ X11 та Android.
- Додано підтримку платформи Android 12 і незважаючи на значні зміни в цій гілці збережено можливість створення універсальних збірок для Android, які можуть працювати на пристроях з різними версіями Android, починаючи з Android 8.
- Оновлено стек Boot2Qt, який може використовуватися для створення мобільних систем, що завантажуються з оточенням на базі Qt і QML. Системне оточення Boot2Qt оновлено до платформи Yocto 4.1 (Langdale).
- Почалося формування пакетів для Debian 11, на які поширюється комерційна підтримка.
- Розширено можливості платформи WebAssembly, що дозволяє створювати Qt-додатки, що працюють у web-браузері та переносяться між різними апаратними платформами. Програми, що збираються для платформи WebAssembly, завдяки JIT-компіляції виконуються з близькою до нативного коду продуктивністю, можуть використовувати Qt Quick, Qt Quick 3D і доступні Qt засоби візуалізації. У новій версії додана підтримка відтворення відео та використання у віджетах засобів для людей з обмеженими можливостями.
- Web-движок Qt WebEngine оновлений до кодової бази Chromium 110. На платформі Linux реалізована підтримка апаратного прискорення відтворення відео при використанні графічного API Vulkan в оточеннях на базі X11 та Wayland.
- Додано модуль Qt Quick Effects, що надає готові графічні ефекти для інтерфейсу на базі Qt Quick. Власні ефекти можна створювати з нуля або отримувати шляхом комбінування вже існуючих ефектів за допомогою Qt Quick Effect Maker.
- У модулі Qt Quick 3D надано можливість налаштування рівня деталізації моделей (наприклад, для об'єктів, розташованих далеко від камери, можна генерувати простіші міші). В API SceneEnvironment реалізована підтримка туману та поступового зникання далеких об'єктів. У ExtendedSceneEnvironment надано можливості для створення складних ефектів постобробки та комбінування таких ефектів, як глибина різкості, свічення та відблиски.
- Доданий експериментальний модуль Qt GRPC з підтримкою протоколів gRPC та Protocol Buffer, що дозволяє звертатися до сервісів gRPC та виконувати серіалізацію Qt-класів, використовуючи Protobuf.
- У модулі Qt Network додано підтримку налаштування з'єднань HTTP 1.
- У модуль Qt Serial Bus додані експериментальні класи для роботи з шиною CAN, які можуть застосовуватися для кодування та декодування повідомлень CAN, обробки кадрів та аналізу файлів DBC.
- Відроджено модуль Qt Location, що надає програмам засоби для інтеграції карт, навігації, позначки цікавих місць (POI). Модуль підтримує інтерфейс плагінів, через який можна підключати бекенди для роботи з різними сервіс-провайдерами та створювати розширення API. Модуль поки що має статус експериментального і підтримує тільки бекенд для карток на базі Open Street Maps.
- Розширено можливості модулів Qt Core, Qt GUI, Qt Multimedia, Qt QML, Qt Quick Compiler, Qt Widgets.
- Проведено велику роботу щодо підвищення стабільності, закрито близько 3500 звітів про помилки.
Джерело: opennet.ru