Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript为QML创建全局变量_Javascript_Qt_Qml_Stateless_Stateful - Fatal编程技术网

使用JavaScript为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)

我对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 library
放在JS文件的开头。这样,QML组件将只导入一个实例

但是请记住,当
var
属性更改时,不会发出更新信号。如果您希望在更新支持下拥有全局代码> var var /代码>,您应该在C++侧通过<代码> SETCONTXECUBFROW()/<代码>导出自定义<代码> QObjs<代码>