Về cơ bản, nếu bạn không cần phải sở hữu ràng buộc (nếu bạn đánh giá là một hằng số và sẽ không cần phải khai báo về biến đổi), bạn có thể định nghĩa nó trong một thư viện chia sẻ Javascript, như thế này:
// MyConstants.js
.pragma library
var mainbg = "red";
Và sử dụng nó trong QML như thế này:
import "MyConstants.js" as Constants
Rectangle {
color: Constants.mainbg;
}
Nhưng mặt xấu của việc này là: - không gõ mạnh (JS không thực sự biết về các loại), do đó bạn có thể đặt bất cứ điều gì ngay cả khi nó không phải là một màu. - và nếu bạn thay đổi mainbg
, Mục sử dụng nó sẽ không được thông báo về thay đổi và sẽ giữ nguyên giá trị cũ
Vì vậy, nếu bạn cần kiểm tra loại và ràng buộc/thay đổi thông báo, chỉ cần khai báo tài sản của bạn với tư cách là thành viên đối tượng gốc trong bạn main.qml, và nó sẽ có thể truy cập từ mọi nơi trong ứng dụng QML, bởi vì thuộc tính trên thực tế sẽ được đăng ký trực tiếp vào đối tượng Ngữ cảnh Qml, là định nghĩa toàn cục theo định nghĩa.
Hy vọng điều đó sẽ hữu ích.
Tại sao không chỉ là một tập tin javascript '.pragma library' đơn giản? – Matteo