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 library'而不是使用它,但无济于事。

发生的是 writeValue.QML 写入成功,所以 [1, 1, ,1, ...]。而 readValue.QML 只找到一个空列表 []。

4

1 回答 1

6

只需放在.pragma libraryJS 文件的开头即可。这样,QML 组件只导入一个实例。

但是请记住,当var属性更改时不会发出更新信号。如果你想拥有全局var更新支持,你应该在 C++ 端导出一个自QObject定义setContextProperty()

于 2013-06-20T12:57:18.783 回答