使用JavaScript为QML创建全局变量
我对QML/JS集成有问题 我在.js文件中存储了一个javascript列表变量。我想从一个QML文件写入此变量,然后从另一个QML文件读取它。我似乎找不到解决这个问题的办法。我已经过度简化了我的实际代码,使其易于理解使用JavaScript为QML创建全局变量,javascript,qt,qml,stateless,stateful,Javascript,Qt,Qml,Stateless,Stateful,我对QML/JS集成有问题 我在.js文件中存储了一个javascript列表变量。我想从一个QML文件写入此变量,然后从另一个QML文件读取它。我似乎找不到解决这个问题的办法。我已经过度简化了我的实际代码,使其易于理解 // writeValue.QML import "../javascript/storedValue.js" as StoredValue ... MouseArea{ onClicked{ StoredValue.value.push(1)
// 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只找到一个空列表,[].只需将
.pragma library
放在JS文件的开头。这样,QML组件将只导入一个实例
但是请记住,当var
属性更改时,不会发出更新信号。如果您希望在更新支持下拥有全局代码> var var /代码>,您应该在C++侧通过<代码> SETCONTXECUBFROW()/<代码>导出自定义<代码> QObjs<代码>