2013-06-20 5 views
4

QML/JS 통합에 문제가 있습니다.QML 용 JavaScript를 사용하여 전역 변수 만들기

.js 파일에 저장된 javascript 목록 변수가 있습니다. 하나의 QML 파일에서이 변수에 쓰고 다른 QML 파일에서 읽고 싶습니다. 나는 이것에 대한 해결책을 찾지 못하는 것 같다. 이해하기 쉽도록 실제 코드를 단순화했습니다!

// writeValue.QML 
import "../javascript/storedValue.js" as StoredValue 
... 
MouseArea{ 
    onClicked{ 
     StoredValue.value.push(1) 
    } 
} 

// readValue.QML 
import "../javascript/storedValue.js" as StoredValue 
... 
Text{ 
    text : StoredValue.value 
} 

//storedValue.js 
var value = [] 

'.pragma library'를 사용했지만 사용하지 않으려 고 노력했지만 아무 소용이 없습니다.

어떻게됩니까? writeValue.QML 쓰기가 성공적으로 이루어 지므로 [1, 1,, 1, ...]. readValue.QML은 빈 목록 []을 찾습니다.

답변

5

.pragma library을 JS 파일의 시작 부분에 넣으십시오. 이렇게하면 인스턴스 1 개만 QML 구성 요소로 가져옵니다.

그러나 var 속성이 변경되면 업데이트 신호가 발행되지 않습니다. 업데이트가 지원되는 var의 글로벌 버전을 사용하려면 QObjectsetContextProperty()을 통해 C++ 측에 내 보내야합니다.

관련 문제