编程语言
首页 > 编程语言> > 使用JavaScript为QML创建全局变量

使用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