Qt 5.15 framework release

Ipinasa ni paglabas ng isang cross-platform na balangkas Qt 5.15. Ang source code para sa mga bahagi ng Qt ay ibinigay sa ilalim ng mga lisensya ng LGPLv3 at GPLv2. Ang isang bagong sangay ng Qt 6 ay ilalathala sa Disyembre, kung saan inaasahan makabuluhang pagbabago sa arkitektura. Para maayos ang paglipat sa hinaharap sa Qt 6 branch, kasama sa Qt 5.15 ang mga pagpapatupad ng preview ng ilang bagong feature at mga karagdagang babala tungkol sa napipintong paghinto ng functionality na nakaiskedyul para sa pagtanggal sa Qt 6.

Ang Qt 5.15 ay inuri bilang isang Long Term Support (LTS) na release. Kasabay nito, para sa mga update ng komunidad sa branch 5.15 ilalathala hanggang sa mabuo lamang ang susunod na makabuluhang isyu, i.e. mga anim na buwan. Ang pinalawig na cycle ng LTS, na kinabibilangan ng pagbuo ng mga update sa loob ng tatlong taon, ay limitado sa mga user na may komersyal na lisensya ($5508 bawat taon bawat developer para sa mga regular na kumpanya, at $499 bawat taon para sa mga startup at maliliit na negosyo). Ang Qt Company din isinasaalang-alang ang kakayahang lumipat sa modelo ng pamamahagi ng Qt, kung saan ang lahat ng release para sa unang 12 buwan ay ipapamahagi lamang sa mga user ng mga komersyal na lisensya. Ngunit sa ngayon ang ideyang ito ay hindi lumampas sa talakayan.

Ang pangunahing mga inobasyon sa Qt 5.15:

  • Nagpatuloy ang trabaho sa paggawa ng abstracted graphics API na hindi nakadepende sa 3D API ng operating system. Ang isang mahalagang bahagi ng bagong Qt graphics stack ay ang scene rendering engine, na gumagamit ng RHI (Rendering Hardware Interface) layer upang paganahin ang mga Qt Quick application hindi lamang sa OpenGL, kundi pati na rin sa itaas ng Vulkan, Metal at Direct 3D API. Sa 5.15, ang bagong graphics stack ay inaalok sa anyo ng isang opsyon na may katayuan na "Teknolohiya Preview".
  • Ibinigay ang buong suporta sa module Qt Mabilis na 3D, kung saan inalis ang tanda ng eksperimentong pag-unlad. Nagbibigay ang Qt Quick 3D ng pinag-isang API para sa paglikha ng mga user interface batay sa Qt Quick na pinagsasama ang mga elemento ng 2D at 3D na graphics. Binibigyang-daan ka ng bagong API na gumamit ng QML upang tukuyin ang mga elemento ng 3D interface nang hindi gumagamit ng format na UIP. Sa Qt Quick 3D, maaari kang gumamit ng isang runtime (Qt Quick), isang layout ng eksena at isang framework ng animation para sa 2D at 3D, at gumamit ng Qt Design Studio para sa pagbuo ng visual na interface. Nilulutas ng module ang mga problema tulad ng malaking overhead kapag isinasama ang QML sa nilalaman mula sa Qt 3D o 3D Studio, at nagbibigay ng kakayahang mag-synchronize ng mga animation at pagbabago sa antas ng frame sa pagitan ng 2D at 3D.

    Kasama sa mga bagong feature na idinagdag sa Qt Quick 3D ang suporta para sa mga post-processing effect, isang C++ API para sa geometry manipulation, isang rotation API batay sa klase ng QQuaternion, at suporta para sa mga point light. Upang suriin ang iba't ibang mga tampok ng Qt Quick 3D pinaghandaan isang espesyal na demo application na nagpapakita kung paano mo mababago ang mga uri at pinagmumulan ng ilaw, gumamit ng mga kumplikadong modelo, manipulahin ang mga texture, materyales at anti-aliasing. Sabay-sabay iminungkahi problema kapaligiran upang idisenyo ang user interface ng Qt Design Studio 1.5, na nagbibigay ng buong suporta para sa Qt Quick 3D.


  • Sa Qt QML ang gawain puro bilang paghahanda para sa Qt 6. Ang kakayahang gumamit ng mga katangian na may katangiang 'kinakailangan' sa mga bahagi, na ang pag-install ay sapilitan, ay ipinatupad. Pinahusay ng qmllint utility ang pagbuo ng mga babala tungkol sa mga posibleng problema sa QML code. Idinagdag ang qmlformat utility, na nagpapadali sa pag-format ng QML code alinsunod sa mga alituntunin sa istilo ng coding. Tinitiyak ang pagiging tugma ng QML sa Qt na edisyon para sa mga microcontroller.
  • Sa Qt Quick, idinagdag ang suporta para sa mga color space sa elemento ng Imahe. Isang bagong elemento ng PathText ang naidagdag sa Qt Quick Shapes.
    Ang isang cursorShape property ay naidagdag sa pointer handler, kung saan maaari mong baguhin ang hugis ng mouse cursor sa mga desktop system. Nagdagdag ng elemento ng HeaderView upang gawing mas madaling magdagdag ng patayo at pahalang na mga header sa TableView-based na mga talahanayan.

  • Ang suporta sa Client-side window decoration (CSD) ay lubos na napabuti, na nagpapahintulot sa isang application na tukuyin ang sarili nitong mga dekorasyon sa bintana at ilagay ang custom na nilalaman sa window title bar.
  • Na-stabilize ang module Qt Lottie, na nagbibigay ng advanced na QML API na nagbibigay-daan sa iyong mag-render ng mga graphics at animation na na-export sa JSON na format gamit ang Bodymovin plugin para sa Adobe After Effects. Salamat sa QtLottie, maaaring maghanda ang isang taga-disenyo ng mga animation effect sa isang maginhawang application, at maaaring direktang ikonekta ng isang developer ang mga na-export na file sa interface ng application sa QtQuick. Kasama sa QtLottie ang isang built-in na micro engine para sa pagsasagawa ng animation, pag-crop, layering at iba pang mga epekto. Ang makina ay naa-access sa pamamagitan ng LottieAnimation QML na elemento, na maaaring kontrolin mula sa QML code sa parehong paraan tulad ng anumang iba pang elemento ng QtQuick.
  • Ang Qt WebEngine browser engine ay na-update sa code base Chromium 80 (sa branch 5.14 ginamit ang Chromium 77, ang kasalukuyang bersyon ay Chromium 83).
  • Pinahusay ng Qt 3D module ang mga tool sa pag-profile at pag-debug.
  • Nagdagdag ang Qt Multimedia ng suporta para sa multi-surface rendering.
  • Sa Qt GUI, ang pag-scale ng imahe at mga pagpapatakbo ng pagbabago ay multi-threaded na ngayon sa maraming kaso.
  • Nagdagdag ang Qt Network ng suporta para sa mga custom na timeout at mga shortcut ng session sa TLS 1.3 (Session Ticket, nagbibigay-daan sa iyong ipagpatuloy ang isang session nang hindi nagse-save ng estado sa gilid ng server).
  • Pinagana ang Qt Core, QRunnable at QThreadPool upang gumana sa std::function. Nagdagdag ng bagong paraan QFile::moveToTrash() para sa paglipat ng mga item sa basurahan, na isinasaalang-alang ang mga detalye ng iba't ibang platform.
  • Sa Qt para sa Android idinagdag Suporta para sa mga katutubong dialog para sa pagbubukas at pag-save ng mga file.

Pinagmulan: opennet.ru

Magdagdag ng komento