Qt 6 үйл ажиллагааны замын зураг нийтлэгдсэн

Lars Knoll, KHTML хөдөлгүүрийг бүтээгч, Qt төслийн төслийн менежер, Qt компанийн техникийн захирал, гэж хэлэв Qt хүрээний дараагийн чухал салбарыг бий болгох төлөвлөгөөний талаар. Qt 5.14 салбарын үйл ажиллагаа дууссаны дараа хөгжүүлэлт нь 6 оны сүүлээр хүлээгдэж буй Qt 2020-г гаргахад бэлтгэхэд чиглэнэ.

Qt 6 нь Qt 5-тай нийцтэй байдлыг хангах үүднээс боловсруулагдах боловч төлөвлөсөн архитектурын өөрчлөлт, цэвэрлэгээг тодорхой түвшний нийцтэй байдлыг алдалгүйгээр хэрэгжүүлэх боломжгүй тул бие даасан асуудал гарч ирж магадгүй юм. Шилжилтийг жигд болгохын тулд Qt 6-ийн зарим функцийг Qt 5.14 ба Qt 5.15 LTS хувилбаруудын нэг хэсэг болгон багасгасан хэлбэрээр оруулахаар төлөвлөж байна. Qt 6 руу шилжих хөдөлгөөнийг хялбарчлах зорилгоор багаж хэрэгслийг мөн бэлтгэнэ.

Дараагийн чухал салбарын гол зорилтуудын нэг бол үйл ажиллагааг 2020 оны шаардлагад нийцүүлэх, кодын санг цэвэрлэх, төслийн засвар үйлчилгээг хялбарчлах явдал юм. Хүлээгдэж буй өөрчлөлтүүд:

  • QML-ийн томоохон шинэчлэл:
    • Хүчтэй бичих дэмжлэг.
    • QML-г C++ дүрслэл болон машины код болгон хөрвүүлэх чадвар.
    • JavaScript-ийн бүрэн дэмжлэгийг сонголт болгох (бүрэн боломжит JavaScript хөдөлгүүрийг ашиглах нь маш их нөөц шаарддаг бөгөөд энэ нь микроконтроллер гэх мэт төхөөрөмж дээр QML ашиглахаас сэргийлдэг).
    • QML дээр хувилбар гаргахаас татгалзах.
    • QObject болон QML-д давхардсан өгөгдлийн бүтцийг нэгтгэх (санах ойн зарцуулалтыг бууруулж, эхлүүлэх ажиллагааг хурдасгах болно).
    • Өгөгдлийн бүтцийг ажиллуулах цаг хугацаанаас татгалзаж эмхэтгэх цагийг бий болгож байна.
    • Хувийн арга, шинж чанарыг ашиглах замаар дотоод бүрэлдэхүүн хэсгүүдийг нуух.
    • Рефактор хийх, эмхэтгэх үеийн алдааг оношлоход зориулсан хөгжүүлэлтийн хэрэгслүүдтэй интеграцчилал сайжирсан;
  • OpenGL, Vulkan, Metal болон Direct 3D (өмнө нь Qt нь зөвхөн OpenGL байсан) зэрэг янз бүрийн график API-уудыг саадгүй ашиглахын тулд Rendering Hardware Interface (RHI) хэмээх шинэ хийсвэр давхарга нэмсэн. Одоо байгаа бүх дүрслэх дэд бүтцийг QPainter, Qt Quick Scenegraph болон Qt3D зэрэг RHI ашиглахаар хөрвүүлнэ. Мөн янз бүрийн шэйдер хөгжүүлэлтийн хэлүүдийг дэмжихийн тулд Qt Shader Tools модулийг нэмж, бүтээх шатанд болон ажиллах үед шэйдерүүдийн хөндлөн эмхэтгэлийг хангахаар төлөвлөж байна;
  • 2D болон 3D график элементүүдийг хослуулсан хэрэглэгчийн интерфейсийг бий болгох нэгдсэн API бэлтгэх. Шинэ API нь UIP форматыг ашиглахгүйгээр 3D интерфейсийн элементүүдийг тодорхойлохын тулд QML ашиглах боломжийг танд олгоно. 3D агуулгыг Qt Quick-тай нэгтгэх шинэ интерфейс нь Qt 3D эсвэл 3D Studio-ийн агуулгатай QML-г нэгтгэх өндөр зардал, 2D болон 3D хооронд анимейшн болон фреймийн түвшний хувиргалтыг синхрончлох боломжгүй зэрэг асуудлуудыг шийдвэрлэхээр төлөвлөж байна. Хосолсон 2D болон 3D дүрслэлийг шинэ дүрслэх хөдөлгүүр ашиглан хэрэгжүүлэх болно. Qt 3 хувилбар дээр 5.14D дэмжлэгтэй шинэ Qt Quick-ийн урьдчилсан үзүүлбэр гарах болно;
  • PNG зургийг шахсан бүтэц болгон хувиргах, эсвэл шэйдер болон торыг тодорхой техник хангамжийн оновчтой хоёртын формат руу хөрвүүлэх гэх мэт графиктай холбоотой хөрөнгийг эмхэтгэх үед боловсруулах хэрэгсэл нэмэх;
  • Төрөл бүрийн гар утас болон ширээний платформ дээр суурилсан Qt Widgets болон Qt Quick дээр суурилсан програмуудын дүр төрхийг бий болгох боломжийг танд олгох загвар, хэв маягийн нэгдсэн хөдөлгүүрийг суулгаж өгөх;
  • Хэрэглэгчийн интерфейсийг бий болгох хэрэгслүүдийг нэгтгэх. Үйл ажиллагааны давхардал, хоёр тусдаа бүтээгдэхүүний нийлүүлэлтийг зогсоохоос зайлсхийхийн тулд Qt 3D Studio-ийн функцийг Qt Design Studio-д нэгтгэх төлөвтэй байгаа бөгөөд тэдгээрийн ихэнх дэд системүүд болон залгаасуудыг холбох хүрээ нь ижил кодын суурь дээр бүтээгдсэн байдаг. Qt Бүтээгч.
    Qt Design Studio нь Photoshop, Sketch, Illustrator, Maya, 3D Max зэрэг контент бүтээх багцуудыг өндөр чанартайгаар нэгтгэхээр төлөвлөж байна. Хөгжлийн нэгдсэн хэрэглүүрт дэмжигдсэн гол хэлүүд нь C++, QML болон Python юм. Нэгтгэх гэдэг нь Qt Creator-ийн интерфейсийн дизайны хэрэгслүүдэд хандах, интерфэйсийн дизайнеруудыг хөгжүүлэгчийн хэрэгслээр хангах, жишээлбэл, төсөл эмхэтгэх эсвэл төхөөрөмж дээрх програмыг турших чадварыг хэлнэ;

  • Барилгын систем болгон QMake-ийн оронд CMake ашиглахаар шийдсэн. QMake ашиглан програм бүтээх дэмжлэг хэвээр байх боловч Qt өөрөө CMake ашиглан бүтээгдэх болно. Энэхүү хэрэгсэл нь C++ төсөл боловсруулагчдын дунд өргөн хэрэглэгддэг бөгөөд олон нэгдсэн хөгжүүлэлтийн орчинд дэмжигддэг тул CMake-г сонгосон. QMake-ийг орлох гэж мэдэгдсэн Qbs угсралтын системийг хөгжүүлэх, зогсоосон;
  • Хөгжүүлэх явцад C++17 стандарт руу шилжих (өмнө нь C++98 ашиглаж байсан). Qt 6 нь орчин үеийн олон C++ функцуудад дэмжлэг үзүүлэхээр төлөвлөж байгаа боловч өнгөрсөн стандартад суурилсан кодтой хоцрогдсон нийцтэй байдлыг алдагдуулахгүй.
  • QML болон Qt Quick-д санал болгож буй зарим функцийг C++ хэлнээс ашиглах чадвар. Ялангуяа QObject болон түүнтэй төстэй ангиудад зориулсан өмчийн шинэ системийг танилцуулах болно. Холбогчтой ажиллах хөдөлгүүрийг QML-ээс Qt цөмд нэгтгэх бөгөөд энэ нь холболтын ачаалал, санах ойн зарцуулалтыг бууруулж, зөвхөн Qt Quick биш Qt-ийн бүх хэсэгт ашиглах боломжтой болгоно;
  • Python, WebAssembly зэрэг нэмэлт хэлнүүдийн дэмжлэгийг өргөжүүлэх ажлыг үргэлжлүүлэх;
  • Жижиг хэсгүүдэд хувааж, үндсэн бүтээгдэхүүний хэмжээг багасгах замаар бүтцийн өөрчлөлт хийх. Хөгжүүлэгчийн хэрэгслүүд болон захиалгат бүрэлдэхүүн хэсгүүдийг шинэ каталогийн дэлгүүрээр дамжуулан түгээх нэмэлт хэрэгсэл болгон өгөх болно. Гуравдагч талын хөгжүүлэгчдийн Qt-д үнэгүй болон төлбөртэй нэмэлтүүдийг түгээхээр хүлээн авна.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх