Компанія Qt Company опублікувала реліз фреймворку Qt 6.1, в якому продовжено роботу зі стабілізації та нарощування функціональності гілки Qt 6. У Qt 6.1 забезпечено підтримку платформ Windows 10, macOS 10.14+, Linux (Ubuntu 20.04+, CentOS 8.1.+). iOS 15.1+ та Android (API 13+). Вихідні тексти компонентів Qt поставляються під ліцензіями LGPLv23 та GPLv3.
Ключові поліпшення Qt 6.1 в основному стосуються включення до складу модулів, які були доступні Qt 5.15, але виявилися не готові для включення до складу першого випуску Qt 6. Зокрема, до складу включені модулі:
- Active Qt — підтримка елементів керування COM та ActiveX на платформі Windows.
- Qt Charts – створення діаграм.
- Qt Data Visualization – візуалізація статичних та динамічних даних.
- Qt Device Utilities — це частина пакету Qt for Device Creation.
- Qt Graphical Effect - прошарок для спрощення портування програм на Qt 6.
- Qt Lottie – малює графіку та анімацію, експортовану у форматі JSON за допомогою плагіна Bodymovin до пакету Adobe After Effects. Включає вбудований мікродвигун для виконання анімації, обрізки, обробки шарів та інших ефектів.
- Qt State Machine - фреймворк для створення подієво-орієнтованих конструкцій та реалізація кінцевого автомата на базі SCXML.
- Qt Virtual Keyboard – реалізація віртуальної клавіатури.
Модулі, які ще не перенесені і очікуються в LTS-випуску Qt 6.2, наміченому на вересень.
- qt-Bluetooth
- Мультимедіа Qt
- NFC
- Позиціонування Qt
- Qt Quick Dialogs: Folder, Message Box
- Qt Remote Objects
- Датчики Qt
- Qt SerialBus
- Послідовний порт Qt
- Веб -канал Qt
- Qt WebEngine
- Qt WebSockets
- Qt WebView
Зміни Qt 6.1:
- У Qt Core проведено роботу з підвищення зручності використання та спрощення API. Додано методи removeIf() та розширено число класів, що підтримують метод erase_if(). Реалізовані методи, доступні в QString, але відсутні QStringView. Додані захищені від переповнення функції додавання, віднімання та множення. Поліпшено підтримку 16-розрядних значень з плаваючою комою. Оновлено API для прив'язки властивостей (property binding), що з'явився Qt 6.0. Додано нові класи для спрощення інтеграції з Java, QJniEnvironment та QJniObject, які зазвичай затребувані на платформі Android.
- У Qt Gui покращена підтримка графічного API Vulkan 1.1 та 1.2. Додано новий клас QUrlResourceProvider, який використовується в QLabel та дозволяє обійтися без повторної реалізації loadResource() та створення підкласів QTextDocument. Реалізовано можливість застосування певних користувачем функцій корекції компонентів колірних просторів у класі QColorSpace.
- У Qt Network запропоновано клас QNetworkInformation, що дозволяє визначити стан мережі у системі. У обробнику HTTP Cookie додано підтримку режиму SameSite.
- У Qt Qml реалізовані опції QJSPrimitiveValue та QJSManagedValue для більш тонкого керування за виконанням JavaScript.
- У Qt Quick 3D додано підтримку морфінгу цільової анімації та реалізовано експериментальну підтримку дублюючого рендерингу (instanced rendering), що дозволяє на один прохід відобразити безліч копій однотипних об'єктів, розміщених у периферійних частинах сцени. Метод суттєво прискорює рендеринг за наявності у сцені великої кількості схожих об'єктів. На базі зазначеного методу реалізовано підтримку малювання тривимірних частинок.
Джерело: opennet.ru