Pelan jalan fungsi Qt 6 diterbitkan

Lars Knoll, pencipta enjin KHTML, pengurus projek Projek Qt dan CTO Syarikat Qt, memberitahu Kami telah mengumumkan rancangan untuk cawangan utama rangka kerja Qt yang seterusnya. Selepas cawangan Qt 5.14 selesai, pembangunan akan menumpukan pada penyediaan untuk keluaran Qt 6, yang dijangka pada akhir 2020.

Qt 6 akan dibangunkan dengan fokus ke arah mengekalkan keserasian dengan Qt 5, tetapi beberapa isu mungkin timbul, kerana perubahan dan pembersihan seni bina yang dirancang akan menjadi mustahil untuk dilaksanakan tanpa kehilangan beberapa tahap keserasian. Untuk melicinkan peralihan, beberapa ciri Qt 6 dirancang untuk disertakan dalam bentuk yang dikurangkan dalam keluaran Qt 5.14 dan Qt 5.15 LTS. Perkakas juga akan disediakan untuk memudahkan penghijrahan ke Qt 6.

Matlamat utama untuk cawangan utama seterusnya termasuk menyelaraskan fungsi dengan keperluan 2020, membersihkan pangkalan kod dan memudahkan penyelenggaraan projek. Perubahan yang dijangkakan:

  • Pemodenan penting QML:
    • Sokongan menaip yang kuat.
    • Keupayaan untuk menyusun QML ke dalam perwakilan C++ dan kod mesin.
    • Menjadikan sokongan JavaScript penuh sebagai pilihan (menggunakan enjin JavaScript berciri penuh memerlukan banyak sumber, yang menghalang penggunaan QML pada peralatan seperti mikropengawal).
    • Penolakan versi dalam QML.
    • Penyatuan struktur data yang diduplikasi dalam QObject dan QML (akan mengurangkan penggunaan memori dan mempercepatkan permulaan).
    • Beralih daripada penjanaan masa jalan bagi struktur data memihak kepada penjanaan masa kompilasi.
    • Menyembunyikan komponen dalaman melalui penggunaan kaedah dan sifat peribadi.
    • Penyepaduan yang lebih baik dengan alat pembangunan untuk pemfaktoran semula dan diagnostik ralat masa penyusunan;
  • Menambah lapisan Abstrak Rendering Hardware Interface (RHI) baharu untuk memastikan penggunaan lancar pelbagai API grafik, termasuk OpenGL, Vulkan, Metal dan Direct 3D (sebelum ini, Qt terikat secara eksklusif dengan OpenGL). Semua infrastruktur pemaparan sedia ada, termasuk QPainter, Qt Quick Scenegraph dan Qt3D, akan dipindahkan untuk menggunakan RHI. Turut dirancang ialah penambahan modul Qt Shader Tools untuk menyokong pelbagai bahasa pembangunan shader dan membolehkan kompilasi silang shader pada kedua-dua masa binaan dan masa jalan.
  • API bersatu untuk mencipta antara muka pengguna yang menggabungkan elemen grafik 2D dan 3D sedang dibangunkan. API baharu akan membolehkan penggunaan QML untuk mentakrifkan elemen antara muka 3D tanpa menggunakan format UIP. Antara muka baharu untuk menyepadukan kandungan 3D dengan Qt Quick dirancang untuk menangani isu seperti overhed tinggi untuk menyepadukan QML dengan kandungan daripada Qt 3D atau 3D Studio, dan ketidakupayaan untuk menyegerakkan animasi dan transformasi pada tahap bingkai antara 2D dan 3D. Paparan bersarang bagi 2D dan 3D akan dilaksanakan menggunakan enjin pemaparan baharu. Pelaksanaan awal Qt Quick baharu dengan sokongan 3D dijangka dalam keluaran Qt 5.14.
  • Menambah alatan untuk memproses sumber berkaitan grafik pada masa penyusunan, seperti menukar imej PNG kepada tekstur termampat atau menukar shader dan mesh kepada format binari yang dioptimumkan perkakasan;
  • Membenamkan tema dan enjin gaya bersatu yang membolehkan Qt Widgets dan aplikasi berasaskan Qt mempunyai rupa asli dan rasa merentas pelbagai platform mudah alih dan desktop;
  • Penyatuan alat penciptaan antara muka pengguna. Untuk menghapuskan pertindihan kefungsian dan pemberhentian dua produk berasingan, kefungsian Qt 3D Studio dijangka akan disepadukan ke dalam Qt Design Studio, kebanyakan subsistem dan rangka kerja pemalamnya dibina pada pangkalan kod yang sama dengan Qt Creator.
    Qt Design Studio juga merancang untuk menyediakan integrasi berkualiti tinggi dengan pakej penciptaan kandungan seperti Photoshop, Sketch, Illustrator, Maya dan 3D Max. Bahasa utama yang disokong dalam kit alat pembangunan bersatu termasuk C++, QML dan Python. Penyatuan juga termasuk keupayaan untuk mengakses alatan reka bentuk antara muka daripada Qt Creator dan menyediakan pereka antara muka dengan keupayaan alat pembangun, seperti penyusunan projek atau ujian pada peranti.
  • Ia telah memutuskan untuk menggunakan CMake dan bukannya QMake sebagai sistem binaan. Sokongan untuk membina aplikasi menggunakan QMake akan kekal, tetapi Qt sendiri akan dibina menggunakan CMake. CMake dipilih kerana kit alat ini digunakan secara meluas dalam kalangan pembangun projek C++ dan disokong dalam banyak persekitaran pembangunan bersepadu. Pembangunan sistem pemasangan Qbs, yang mendakwa sebagai pengganti QMake, dihentikan;
  • Peralihan kepada standard C++17 semasa pembangunan (sebelum ini C++98 telah digunakan). Qt 6 merancang untuk melaksanakan sokongan untuk banyak ciri C++ moden, tetapi tanpa kehilangan keserasian ke belakang dengan kod berdasarkan piawaian yang lalu.
  • Keupayaan untuk menggunakan beberapa fungsi yang ditawarkan oleh QML dan Qt Quick daripada C++. Ini termasuk pengenalan sistem hartanah baharu untuk QObject dan kelas yang serupa. Enjin pengikat akan disepadukan daripada QML ke dalam teras Qt, mengurangkan beban dan penggunaan memori pengikatan dan menjadikannya tersedia untuk semua bahagian Qt, bukan hanya Qt Quick;
  • Kerja berterusan untuk memperluaskan sokongan untuk bahasa tambahan seperti Python dan WebAssembly;
  • Penstrukturan semula yang melibatkan memecahkan produk kepada komponen yang lebih kecil dan mengurangkan saiz produk teras. Alat pembangun dan komponen khusus akan dihantar sebagai alat tambah yang diedarkan melalui kedai katalog baharu. Alat tambah Qt pihak ketiga, percuma dan berbayar, juga akan diterima untuk pengedaran.

Sumber: opennet.ru

Beli pengehosan yang boleh dipercayai untuk tapak dengan perlindungan DDoS, pelayan VPS VDS 🔥 Beli pengehosan laman web yang boleh dipercayai dengan perlindungan DDoS, pelayan VPS VDS | ProHoster