使用JavaScript为QML创建全局变量
作者:互联网
我遇到了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只找到一个空列表,[].
解决方法:
只需将.pragma库放在JS文件的开头即可.这样,QML组件只会导入一个实例.
但请记住,var属性更改时不会发出更新信号.如果要使用具有更新支持的全局变量,则应通过C侧的setContextProperty()导出自定义QObject.
标签:javascript,qt,qml,stateless,stateful 来源: https://codeday.me/bug/20190529/1177850.html