Доступна альфа-версія Qt 6.0

Компанія Qt Company оголосила про переведення гілки Qt 6 на стадію альфа-тестування. Qt 6 включає значні архітектурні зміни, а для збирання потрібен компілятор, що підтримує стандарт C++17. Реліз намічений станом на 1 грудня 2020 року.

Ключові Особливості Qt 6:

  • Абстрагований графічний API, що не залежить від 3D API операційної системи. Ключовим компонентом нового графічного стека Qt є двигун рендерингу сцен, що використовує прошарок RHI (Rendering Hardware Interface) для забезпечення роботи програм Qt Quick не тільки з OpenGL, але й поверх API Vulkan, Metal і Direct 3D.
  • Модуль Qt Quick 3D з API для створення інтерфейсів користувача на базі Qt Quick, що поєднують елементи 2D та 3D графіки. Qt Quick 3D дозволяє використовувати QML для визначення 3D-елементів інтерфейсів без використання формату UIP. У Qt Quick 3D для 2D і 3D можна використовувати один runtime (Qt Quick), один макет сцени та один анімаційний фреймворк, а для візуальної розробки інтерфейсу застосовувати Qt Design Studio. Модуль вирішує такі проблеми, як великі накладні витрати при інтеграції QML з контентом Qt 3D або 3D Studio, і надає можливість синхронізації анімації та перетворень на рівні окремих кадрів між 2D і 3D.
  • Реструктуризація кодової бази з розбиттям більш дрібні складові і скороченням обсягу базового продукту. Інструменти для розробників та спеціалізовані компоненти будуть поставлятися у вигляді доповнень, що розповсюджуються через каталог-магазин Ринок Qt.
  • Істотна модернізація QML:
    • Підтримка суворої типізації.
    • Можливість компіляції QML у виставу на C++ і машинний код.
    • Переведення повної підтримки JavaScript у розряд опцій (використання повнофункціонального JavaScript-движка потребує великих ресурсів, що заважає застосуванню QML на такому устаткуванні, як мікроконтролери).
    • Відмова від версіонування QML.
    • Уніфікація структур даних, що дублюються в QObject і QML (дозволить скоротити споживання пам'яті та прискорити запуск).
    • Уникнення генерації структур даних під час виконання на користь генерації під час компіляції.
    • Приховування внутрішніх компонентів через використання приватних методів та властивостей.
    • Поліпшена інтеграція з інструментами розробки для рефакторингу та діагностики помилок під час компіляції.
  • Додавання інструментів для обробки пов'язаних із графікою ресурсів на етапі компіляції, наприклад, для перетворення PNG-зображень у стислі текстури або для конвертації шейдерів та мішів у оптимізовані бінарні формати для конкретного обладнання.
  • Вбудовування уніфікованого двигуна для оформлення та стилів, що дозволяє досягти зовнішнього вигляду додатків на базі Qt Widgets і Qt Quick, рідного для різних мобільних і настільних платформ.
  • Як систему збирання вирішено використовувати CMake замість QMake. Підтримка збирання програм за допомогою QMake буде збережена, але сам Qt буде збиратися за допомогою CMake. CMake обраний, оскільки даний інструментарій набув широкого поширення серед розробників проектів на C++ і підтримується у багатьох інтегрованих середовищах розробки. Розробка складальної системи Qbs, яка претендувала на роль заміни QMake, продовжено спільнотою.
  • Перехід розробки на стандарт C++17 (раніше використовувався C++98). Qt 6 планують реалізувати підтримку багатьох сучасних можливостей C++, але без втрати зворотної сумісності з кодом на основі минулих стандартів.
  • Можливість використання в коді на C++ певної функціональності, запропонованої QML і Qt Quick. У тому числі буде представлено нову систему властивостей для QObject і подібних класів. З QML в ядро ​​Qt буде інтегрований двигун для роботи з прив'язками (binding), що дозволить знизити навантаження та споживання пам'яті для біндингу та зробити їх доступними для всіх частин Qt, а не тільки Qt Quick.
  • Розширення підтримки додаткових мов, таких як Python та WebAssembly.
  • Джерело: opennet.ru

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