Реліз фреймворку Qt 5.15

представлений реліз кросплатформового фреймворку Qt 5.15. Вихідні тексти компонентів Qt поставляються під ліцензіями LGPLv3 та GPLv2. У грудні буде опублікована нова гілка Qt 6, у якій очікуються значні архітектурні зміни. Для згладжування майбутнього переходу на гілку Qt 6 Qt 5.15 включені попередні реалізації деяких нововведень і додані попередження про швидке припинення підтримки функціональності, наміченої для видалення Qt 6.

Qt 5.15 віднесений до випусків із тривалим терміном підтримки (LTS). При цьому для спільноти оновлення гілки 5.15 публікуватимуться лише формування чергового значного випуску, тобто. приблизно півроку. Розширений LTS-цикл, що передбачає формування оновлень протягом трьох років, буде обмежений користувачами з комерційною ліцензією (для звичайних компаній – $5508 на рік на одного розробника, а для стартапів та малих підприємств – $499 на рік). Компанія Qt Company також розглядала можливість переходу на модель поширення Qt, коли всі випуски протягом перших 12 місяців будуть поширюватися лише користувачів комерційних ліцензій. Але поки що ця ідея не пішла далі за обговорення.

Основні нововведення Qt 5.15:

  • Продовжено роботу зі створення абстрагованого графічного API, що не залежить від 3D API операційної системи. Ключовим компонентом нового графічного стека Qt є двигун рендерингу сцен, що використовує прошарок RHI (Rendering Hardware Interface) для забезпечення роботи програм Qt Quick не тільки з OpenGL, але й поверх API Vulkan, Metal і Direct 3D. У 5.15 новий графічний стек запропонований у формі опції, що має статус "Technology Preview".
  • Забезпечено повну підтримку модуля Qt Quick 3D, з якого знято ознаку експериментальної розробки. Qt Quick 3D надає уніфікований API для створення інтерфейсів користувача на базі Qt Quick, що поєднують елементи 2D та 3D графіки. Новий API дозволяє використовувати QML для визначення 3D-елементів інтерфейсів без використання формату UIP. У Qt Quick 3D для 2D і 3D можна використовувати один runtime (Qt Quick), один макет сцени та один анімаційний фреймворк, а для візуальної розробки інтерфейсу застосовувати Qt Design Studio. Модуль вирішує такі проблеми, як великі накладні витрати при інтеграції QML з контентом Qt 3D або 3D Studio, і надає можливість синхронізації анімації та перетворень на рівні окремих кадрів між 2D і 3D.

    З доданих у Qt Quick 3D нових можливостей згадується підтримка ефектів постпроцесингу, C++ API для керування геометрією, API для обертання, що базується на класі QQuaternion, та підтримка точкових джерел світла. Для оцінки різних можливостей Qt Quick 3D підготовлено спеціальний демонстраційний додаток, що показує як можна змінювати типи та джерела освітлення, використовувати складні моделі, маніпулювати текстурами, матеріалами та згладжуванням. Одночасно запропонований випуск оточення для проектування інтерфейсу користувача Qt Design Studio 1.5, у якому реалізовано повну підтримку Qt Quick 3D.


  • У Qt QML робота була зосереджена на підготовці до Qt 6. Реалізована можливість застосування компонентів властивостей з ознакою 'required', установка яких обов'язкова. В утиліті qmllint покращено формування попереджень про можливі проблеми в QML-коді. Додана утиліта qmlformat, яка спрощує форматування QML-коду відповідно до рекомендацій щодо стилю кодування. Забезпечено сумісність QML з редакцією Qt для мікроконтролерів.
  • У Qt Quick елемент Image додана підтримка колірних просторів. У Qt Quick Shapes додано новий елемент PathText.
    У обробник покажчика додано властивість cursorShape, через яку можна змінити форму курсору миші на настільних системах. Доданий елемент HeaderView для спрощення додавання вертикальних та горизонтальних заголовків у таблиці на основі TableView.

  • Значно покращено підтримку декорування вікон на стороні клієнта (CSD), що дозволяє застосуванню визначити власні елементи оформлення вікон та розмістити довільний вміст у заголовку вікна.
  • Стабілізовано модуль Qt Lottie, що надає розширений API для QML, що дозволяє малювати графіку та анімацію, експортовану у форматі JSON за допомогою плагіна Bodymovin до пакету Adobe After Effects. Завдяки QtLottie дизайнер може підготувати анімаційні ефекти у зручній для себе програмі, а розробник безпосередньо підключити експортовані файли до інтерфейсу програм на QtQuick. QtLottie включає вбудований мікродвигун для виконання анімації, обрізки, обробки шарів та інших ефектів. Двигун доступний через QML-елемент LottieAnimation, яким можна керувати з QML-коду за аналогією з будь-якими іншими елементами QtQuick.
  • Браузерний двигун Qt WebEngine оновлений до кодової бази Chromium 80 (у гілці 5.14 використовувався Chromium 77, актуальною версією є Chromium 83).
  • У модулі Qt 3D покращено засоби профілювання та налагодження.
  • У Qt Multimedia додано підтримку малювання в кілька поверхонь.
  • У Qt GUI операції масштабування та перетворення зображень тепер у багатьох випадках виконуються багатопоточному режимі.
  • У Qt Network додано підтримку таймаутів, що настроюються, і сесійних ярликів у TLS 1.3 (Session Ticket, дозволяють відновити сеанс без збереження стану на стороні сервера).
  • Забезпечено можливість роботи Qt Core, QRunnable та QThreadPool з std::function. Додано новий метод QFile::moveToTrash() для переміщення елементів у кошик з урахуванням специфіки різних платформ.
  • Qt для Android додано підтримка рідних діалогів для відкриття та збереження файлів.

Джерело: opennet.ru

Додати коментар або відгук