【问题标题】:Creating global variables using JavaScript for QML使用 JavaScript 为 QML 创建全局变量
【发布时间】:2013-06-17 07:34:27
【问题描述】:

我遇到了 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 只找到一个空列表 []。

【问题讨论】:

    标签: javascript qt qml stateless stateful


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-12
      • 1970-01-01
      • 2018-05-31
      • 2018-08-31
      相关资源
      最近更新 更多