使用JavaScript为QML创建全局变量

4

我在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库”和不使用它,但都没有成功。

writeValue.QML可以成功写入,因此是[1,1,, 1,...]。而readValue.QML只能找到一个空列表,[]。

1个回答

6

只需在JS文件开头放置.pragma library,这样QML组件中只会导入一个实例

但请记住,当var属性更改时,不会发出更新信号。如果您想要具有更新支持的全局var,则应通过C ++端的setContextProperty()导出自定义QObject


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接