2011-09-22 51 views

Trả lời

24

Hãy thử property int globalForJs: 10;

Nếu bạn muốn có một biến mà có thể dùng bất cứ loại:

property var globalForJs: 10

Trước QML 2, sử dụng từ khóa variant thay vì var.

+0

Cảm ơn bạn đã trả lời, có thể truy cập 'biến thể thuộc tính globalForJs: 10' này từ hàm tập lệnh java có trong tệp QML không? – psp1

+0

có thể. Tất cả các thuộc tính của một đối tượng QML có thể được truy cập bởi bất kỳ hàm javascript nào được định nghĩa bên trong nó. – coyotte508

+0

Nhưng làm thế nào để làm cho thuộc tính này là "riêng tư", vì vậy nó không được nhìn thấy bởi các công cụ QML khác? – KernelPanic

7

Sử dụng int hay variant tính không tạo ra một biến javascript, mà đúng hơn là một tài sản QML generic ngữ nghĩa khác nhau (see here)

Trước Qt 5, biến javascript toàn cầu được khuyến khích để được định nghĩa trong một tập tin nhập khẩu riêng javascript, tuy nhiên Qt 5 thêm var loại property support.

-3

điều mà bạn muốn làm cho toàn cầu nên được thực hiện như trong ví dụ này

property variant name:"john"//i want this to be global 
onCreationCompleted(){ 
Qt.name = name 
} 

bất cứ nơi nào bạn muốn sử dụng việc sử dụng tên tài sản như Qt.name thay vì chỉ name.this cũng được áp dụng cho bất kỳ id của các điều khiển

Các vấn đề liên quan