有没有办法检查存在并在QML / javascript中访问动态创建的对象(不使用C ++)?
我正在尝试使用类似于地图的界面创建应用程序 - 给定一个键和一个对象,我的应用程序必须找到具有该键的对象是否存在并用新对象覆盖。如果没有,则应用必须创建一个新对象并与密钥关联。
文档说动态管理的对象没有ID,我发现访问它们的唯一方法是使用objectName,这似乎需要C ++应用程序。
提前感谢。
答案 0 :(得分:4)
您可以将JavaScript对象用作地图。您无法在QML中直接操作它,但您可以移动所有代码以将此对象处理为JavaScript文件并将其作为模块包含在内。 这是一个简单的例子:
Map.js:
var _map = new Object()
function value(key) {
return _map[key]
}
function setValue(key, value) {
_map[key] = value
}
function remove(key) {
delete _map[key]
}
function keys() {
return Object.keys(_map)
}
function process() {
for (var key in _map) {
/* do something */
}
}
QML示例:
import QtQuick 1.1
import "Map.js" as Map
Item {
Component.onCompleted: {
Map.setValue("test", "hello")
console.log("test = ", Map.value("test"))
Map.remove("test", "hello")
console.log("test = ", Map.value("test"))
}
}
输出将是:
test = hello
test = undefined