Tôi biết rằng QML không hỗ trợ kiểu CSS như widget làm, và tôi đã đọc lên trên cách tiếp cận thay thế cho phong cách/theming:Styling QML mà không tự đánh dấu mỗi tài sản để được theo kiểu
- https://qt-project.org/wiki/QmlStyling
- http://www.slideshare.net/BurkhardStubert/practical-qml-key-navigation/34
Phổ biến cho các phương pháp này là chúng yêu cầu nhà phát triển chỉ định các phần của QML có thể được tạo kiểu, hoặc bằng cách liên kết với thuộc tính trong "tệp QML kiểu dáng/singleton" hoặc bằng cách sử dụng Trình tải tải khác Thành phần QML dựa trên tên kiểu. Những gì tôi muốn là cái gì đó hoạt động giống như bộ chọn "id" trong CSS thay vì bộ chọn "lớp", để các tệp QML riêng lẻ không phải biết liệu chúng sẽ được tạo kiểu sau này hay không.
cách tiếp cận hiện tại của tôi làm cho tất cả các tập tin QML trông giống như này (sử dụng cách tiếp cận trong liên kết 2):
Main.qml
Rectangle {
Id: background
color: g_theme.background.color
//g_theme is defined in root context and loaded dynamically
}
Những gì tôi muốn làm là:
Main.qml
Rectangle {
Id: background
color: “green” // default color
}
Và sau đó có một file phong cách định nghĩa (hoặc tương tự)
Main.qml #background.color: red
Đây có phải là có thể vào lúc này, hoặc cái gì đó là trong các đường ống cho một phiên bản Qt trong tương lai, hoặc cách ưa thích của phong cách sẽ tiếp tục là một cái gì đó tương tự như cách tiếp cận được mô tả trong các liên kết ở trên?
Cảm ơn bạn đã trả lời - Tôi đoán cách tiếp cận của bạn tương tự như cách chúng tôi hiện làm trừ khi chúng tôi sử dụng tệp qml để xác định "chủ đề" thay vì tệp .js. Vấn đề của tôi với điều này là chúng tôi phải quyết định những gì chúng tôi muốn phong cách sớm để tránh phải trải qua rất nhiều chủ đề và kiểm soát và sửa đổi các thuộc tính mà chúng tôi muốn áp dụng kiểu dáng. Nhưng bây giờ nó hoạt động ổn, vì vậy chúng tôi sẽ tiếp tục sử dụng phương pháp này cho đến khi một cái gì đó tốt hơn cho thấy. – jesperhh
Có thể loại bỏ 'nhập khẩu 'MyTheme.js" làm Chủ đề; 'tuyên bố? Tôi muốn làm chính xác như @ jesperhh nhưng với các tài nguyên nhị phân bên ngoài. Tôi tự hỏi nếu tôi có thể thay đổi chủ đề trong thời gian chạy mà không cần phải nhập khẩu nhà nước. –