Công ty Qt đã phát hành khung phần mềm Qt 6.11, tiếp tục công việc ổn định và mở rộng chức năng của nhánh Qt 6. Qt 6.11 hỗ trợ các nền tảng sau: Windows 10+, macOS 13+, Linux (Ubuntu 22.04/24.04, openSUSE 15.6/16, SUSE 15 SP6, RHEL 8.10/9.6/10, Debian 11.6/12), iOS 17+, Android 9+ (API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS và QNX. Mã nguồn của các thành phần Qt được cấp phép theo LGPLv3 và GPLv2. Qt 6.11 đã nhận được trạng thái phát hành tạm thời, sẽ được hỗ trợ công khai trong 6 tháng (+ thêm 6 tháng cho người dùng thương mại).
Những thay đổi lớn trong Qt 6.11:
- Mô-đun Qt Canvas Painter đã được thêm vào, cung cấp API để tăng tốc phần cứng trong việc hiển thị nội dung 2D, được xây dựng dựa trên đặc tả HTML Canvas 2D Context. Quá trình hiển thị được thực hiện bằng công cụ RHI (Rendering Hardware Interface), hỗ trợ nhiều API 3D khác nhau (OpenGL, Vulkan, Metal và Direct 3D), dẫn đến hiệu suất được cải thiện đáng kể. Trong các thử nghiệm, Qt Canvas Painter nhanh gấp đôi so với QPainter sử dụng OpenGL trên máy tính xách tay Lenovo ThinkPad P16 Gen 2 thông thường, nhanh gấp năm lần trên máy tính bảng Android Lenovo Tab M10 HD giá rẻ và nhanh gấp mười lần trên máy tính bảng Android Samsung Galaxy Tab S8 cao cấp.

Ngoài hiệu năng cao, Qt Canvas Painter còn hỗ trợ các tính năng nâng cao như khử răng cưa có thể cấu hình, tạo hiệu ứng chuyển màu và đổ bóng (QCanvasBoxGradient và QCanvasBoxShadow tương tự như thuộc tính box-shadow của CSS), các mẫu lưới (QCanvasGridPattern), cọ vẽ đổ bóng tùy chỉnh và hiệu ứng màu sắc để thay đổi độ trong suốt, độ sáng, độ tương phản và độ bão hòa.

- Chức năng của mô-đun Qt Quick 3D hiện đã gần giống với các công cụ game hơn. Đã bổ sung hỗ trợ cho kỹ thuật kết xuất SSGI (Screen Space Global Illumination) để mô phỏng phản chiếu ánh sáng từ các bề mặt trong quá trình xử lý hậu kỳ (một giải pháp thay thế cho việc tạo bản đồ ánh sáng) và SSR (Screen Space Reflections) để kết xuất phản chiếu chân thực trong thời gian thực. Thuật toán khử răng cưa cho các đối tượng chuyển động đã được cải thiện bằng cách tạo ra các vectơ chuyển động cho mỗi đối tượng. Các lượt kết xuất có thể cấu hình đã được triển khai, có thể được sử dụng trực tiếp từ QML cho mặt nạ lớp, hiệu ứng xử lý hậu kỳ và chọn màu. Các API mới cho lớp và thẻ đã được thêm vào, cho phép kiểm soát các lượt kết xuất riêng lẻ, việc bao gồm các phần tử ở các giai đoạn khác nhau của quy trình kết xuất và chuyển hướng đến bộ đệm mục tiêu kết xuất.

- Mô-đun Qt Graphs đã được mở rộng khả năng. Kiểu dữ liệu CustomSeries đã được thêm vào, cho phép bạn tạo các đồ thị tùy chỉnh trong đó một delegate do người dùng định nghĩa chịu trách nhiệm vẽ từng phần tử dữ liệu. Đồ thị 3D hiện hỗ trợ nhiều trục. Ví dụ, QBar3DSeries hỗ trợ các trục riêng biệt cho rowAxis, valueAxis và columnAxis, trong khi QScatter3DSeries và QSurface3DSeries hỗ trợ các trục riêng biệt cho axisX, axisY và axisZ. Các thuộc tính mới đã được thêm vào để ghi đè màu sắc cho từng trục, tùy chỉnh độ dốc đồ thị, thay đổi kiểu đường và định vị nhãn. Một ví dụ về việc tạo đồ thị 2D và 3D tùy chỉnh đã được thêm vào: Bảng điều khiển tuabin gió.

- Mô-đun thử nghiệm Qt TaskTree đã được thêm vào, cung cấp một phương pháp khai báo để tạo và thực thi các tác vụ bất đồng bộ trong C++. Các thành phần chính của Qt TaskTree bao gồm: "recipes" - các đối tượng có thể tái sử dụng mô tả quy trình làm việc bất đồng bộ; "groups" - định nghĩa các chính sách cho các tác vụ con; "storage" để chia sẻ dữ liệu giữa các tác vụ; và "iterators" để lặp lại và thực thi lại các tác vụ. Qt TaskTree cũng giải quyết các vấn đề không tương thích API bằng cách hợp nhất nhiều API bất đồng bộ khác nhau thành một giao diện chuẩn.

- Đã mở rộng khả năng làm việc với đồ họa vector động được tạo từ hình ảnh SVG và Lottie. Mô-đun Qt Quick VectorImage và công cụ lottietoqml đã được ổn định. Đã thêm hỗ trợ cho hoạt ảnh biến đổi, mặt nạ SVG, biểu tượng SVG và lớp mờ (để kiểm soát khả năng hiển thị của lớp khác).
- Thành phần DoubleSpinBox đã được thêm vào Qt Quick Controls. DialogButtonBox giờ đây cho phép kiểm soát việc xử lý nút mặc định. Hiệu ứng RectangularShadow hiện hỗ trợ điều khiển độc lập bán kính góc.
- Trong Qt Widgets, QWizard có tùy chọn StretchBanner; QAbstractItemView có tham số keyboardSearchFlags để tùy chỉnh hành vi tìm kiếm khi nhấn phím; QColumnView có thuộc tính để kiểm soát khả năng hiển thị bản xem trước.
- Đã thêm mô-đun Qt OpenAPI, cho phép bạn tạo mã máy khách HTTP bằng cách sử dụng API RESTful của Qt Networks dựa trên đặc tả OpenAPI ở định dạng YAML.
- Mô-đun Qt GRPC đã được cập nhật để bao gồm cơ chế quản lý luồng và nội dung của các yêu cầu và phản hồi.
- Mô-đun Máy chủ HTTP Qt đã mở rộng các công cụ quản lý giới hạn và cải thiện khả năng xử lý phản hồi của luồng làm việc. QNetworkRequest hiện hỗ trợ cài đặt TCP Keep Alive (theo mặc định, các kết nối không hoạt động sẽ tự động bị chấm dứt sau 2 phút).
- Máy chủ ngôn ngữ QML, được sử dụng để tích hợp với IDE, hiện đã có thông tin về vị trí của các định nghĩa kiểu QML trong mã C++ để đơn giản hóa việc điều hướng giữa QML và C++ từ IDE. Khi làm việc với mã C++, bạn có thể tìm các đối tượng QML theo ID và dễ dàng duyệt qua hệ thống phân cấp các ngữ cảnh QML.
- Ngoài QRangeModel, lớp QRangeModelAdapter cũng được triển khai, cung cấp API C++ để sửa đổi dữ liệu mô hình, giao tiếp thông qua giao thức QAbstractItemModel, giúp dễ dàng truyền dữ liệu từ mã C++ phía máy chủ đến Qt Quick hoặc Qt Widget.
- Đã thêm hỗ trợ cho nền tảng Android 16. Chức năng Google Play Feature Delivery đã được triển khai để chia ứng dụng thành các gói (gói chính được cài đặt ngay lập tức từ Google Play, và các gói bổ sung sẽ được tải xuống khi cần). Đối với Android Automotive, đã triển khai hỗ trợ khởi chạy Qt mà không cần phụ thuộc vào Android để bắt đầu hiển thị nhanh chóng.
Một điểm đáng chú ý khác là môi trường phát triển tích hợp (IDE) Qt Creator 19 mới được phát hành gần đây, được thiết kế để tạo các ứng dụng đa nền tảng bằng thư viện Qt. Nó hỗ trợ cả lập trình C++ truyền thống và QML, sử dụng JavaScript để định nghĩa các đoạn mã và các khối giống CSS để định nghĩa cấu trúc và tham số của các phần tử giao diện. Các bản dựng sẵn sàng sử dụng có sẵn cho Linux, Windows và Mac OS.
Trong số các tính năng mới, một tính năng đáng chú ý là chế độ bản đồ thu nhỏ (Tùy chọn > Trình soạn thảo văn bản > Hiển thị > Bật bản đồ thu nhỏ), hiển thị hình thu nhỏ của toàn bộ nội dung bên cạnh thanh cuộn, cho phép bạn nhanh chóng xem lướt toàn bộ mã. Một máy chủ MCP đơn giản được tích hợp để kết nối với các trợ lý AI, cho phép bạn mở tệp và dự án, chạy bản dựng và gỡ lỗi. Việc thiết lập bản dựng trên các thiết bị bên ngoài đã được đơn giản hóa: một nút Chạy tự động phát hiện đã được thêm vào để tự động phát hiện phiên bản Qt, trình biên dịch, trình gỡ lỗi và CMake sau khi đăng ký thiết bị. Hỗ trợ đã được triển khai để truy cập trực tiếp vào hệ thống tệp của các thiết bị được kết nối, thiết bị Android và trình giả lập.

Nguồn: opennet.ru





