ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ тСстовый выпуск Qt 6

Компания Qt Company ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ тСстовый выпуск Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Qt 6, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ измСнСния, Π° для сборки потрСбуСтся компилятор, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ стандарт C++17. Выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ каркас Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π° Qt 6, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΌΠ΅Ρ‡Π΅Π½ Π½Π° 1 дСкабря 2020 Π³ΠΎΠ΄Π°. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² Π²Π΅Ρ‚ΠΊΠ΅ Qt 6 Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒΡΡ Π΄ΠΎ объявлСния Π·Π°ΠΌΠΎΡ€ΠΎΠ·ΠΊΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ 31 августа.

Π’ состав ΠΏΠ΅Ρ€Π²ΠΎΠΉ тСстовой сборки Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ:
Qt Core,
Qt GUI,
Qt Widgets,
Qt Network,
Qt QML,
Qt Quick,
Qt Quick Controls,
Qt SVG,
Qt Network Authorization,
Qt SQL ΠΈ
Qt Test.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности 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 Marketplace.
  • БущСствСнная модСрнизация 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