Qt Company telah merilis framework Qt 6.12, yang melanjutkan upaya untuk menstabilkan dan memperluas fungsionalitas cabang Qt 6. Qt 6.12 menyediakan dukungan untuk berbagai platform. Windows 10+, macOS 13+, Linux (Ubuntu 22/04/04/24, openSUSE 16, SUSE 15 SP6, RHEL 9.6/10.0, Debian 11.6/12), iOS 17+, Android 9+ (API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS, dan QNX. Kode sumber untuk komponen Qt dilisensikan di bawah lisensi LGPLv3 dan GPLv2.
Qt 6.12 telah ditetapkan sebagai rilis LTS (Long Term Support), dengan pembaruan yang berlanjut selama lima tahun untuk pemegang lisensi komersial. Untuk pengguna non-komersial, pemeliharaan akan berlanjut selama enam bulan (hingga rilis utama berikutnya). Dukungan untuk cabang LTS sebelumnya, Qt 6.8, akan berlanjut hingga Oktober 2029, sementara dukungan untuk cabang LTS sebelumnya, Qt 6.5, berakhir tahun ini.
Perubahan besar pada Qt 6.12:
- Modul Qt Canvas Painter, yang menyediakan API untuk rendering konten 2D yang dipercepat perangkat keras dan menggunakan shader untuk menciptakan efek visual yang kompleks, telah dinyatakan siap untuk digunakan secara luas. Rendering dilakukan menggunakan mesin RHI (Rendering Hardware Interface), yang mendukung berbagai API 3D (OpenGL, Vulkan, Metal, dan Direct 3D). Canvas Painter digunakan sebagai dasar untuk elemen eksperimental Canvas2D, yang didasarkan pada spesifikasi HTML Canvas 2D Context dan menyederhanakan penggunaan JavaScript untuk menggambar bentuk.

- Modul StyleKit eksperimental telah ditambahkan, yang secara eksplisit memisahkan struktur komponen antarmuka pengguna dari atribut gaya, sehingga menghilangkan duplikasi kode saat mengimplementasikan tema terang, gelap, dan kontras tinggi. StyleKit menyediakan API QML terpadu untuk mendeskripsikan gaya, memungkinkan penataan gaya yang konsisten dalam aplikasi hibrida yang menggabungkan widget klasik dan elemen berbasis Qt Quick.

- Kemampuan modul Qt Graphs telah diperluas. Properti baru untuk menyesuaikan label sumbu telah diimplementasikan untuk grafik 2D, dan dukungan untuk sumbu logaritmik telah ditambahkan. Aksi bawaan untuk memperbesar dan menggeser telah ditambahkan. Opsi telah ditambahkan untuk rendering menggunakan backend berkinerja tinggi berdasarkan modul CanvasPainter, memungkinkan visualisasi volume data besar yang berubah dengan cepat.
- Qt Quick telah menambahkan tipe QML Safe Area, Context Menu, Double Spin Box, dan Search Field untuk menampilkan konten yang tidak tumpang tindih, menu konteks, formulir input numerik, dan kolom pengiriman kueri pencarian. Tipe QML FlexboxLayout telah diperluas, memungkinkan tata letak adaptif elemen antarmuka sesuai dengan konsep Flexbox, kerangka kerja CSS yang digunakan untuk menyederhanakan perataan vertikal elemen.
- Modul Gambar Vektor, yang memungkinkan Anda mengintegrasikan gambar vektor ke dalam adegan Qt Quick untuk membuat elemen antarmuka yang dapat diskalakan, telah diperbarui dengan properti tambahan dan kemampuan animasi untuk gambar SVG dan Lottie.
- Kelas QRangeModel telah diperluas, menyediakan pembungkus di sekitar QAbstractItemModel untuk penggunaan langsung dalam elemen antarmuka berbasis QML dan Qt Quick dari semua tipe enumerasi C++, termasuk std::vector, std::tuples, dan std::array. Versi baru ini menyertakan dukungan bawaan untuk pengurutan data, properti baru untuk mengontrol pergerakan seret dan lepas, pencarian yang lebih cepat melalui metode match(), dan pengaturan untuk header dan baris/item individual.
- Dan modul gRPC telah ditambahkan dengan alat untuk mengompres pesan di sisi klien dan membatasi ukuran pesan yang masuk dari server.
- Mesin QML mengimplementasikan mekanisme Hot Reload, yang memungkinkan Anda mengedit kode QML secara langsung selama eksekusi program dan mengamati hasilnya melalui qmlpreview tanpa perlu memulai ulang atau menghentikan aplikasi.
- Dukungan LTS untuk platform HarmonyOS telah disediakan, sehingga memudahkan untuk memindahkan aplikasi Qt yang sudah ada ke ponsel pintar, tablet, PC, dan sistem infotainment dalam mobil Huawei.
- Persyaratan Undang-Undang Ketahanan Siber Eropa (CRA) telah dipenuhi. Persyaratan ini bertujuan untuk menjaga keamanan produk, segera memperbaiki kerentanan di seluruh siklus hidup produk, dan mengungkapkan informasi tentang kerentanan dan insiden keamanan. Komponen yang kritis terhadap keamanan diidentifikasi dalam kode sumber, informasi pengujian keamanan dipublikasikan, dan integrasi versi terbaru dari pustaka pihak ketiga dijamin.

Sumber: opennet.ru


