我遇到了QML / JS集成的问题。
我有一个存储在.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只找到一个空列表,[]。
答案 0 :(得分:6)
只需将.pragma library
放在JS文件的开头即可。这样,QML组件只会导入一个实例。
但请记住,var
属性更改时不会发出更新信号。如果您希望全局var
具有更新支持,则应在C ++端通过QObject
导出自定义setContextProperty()
。