有没有办法检查存在和访问 QML/javascript 中动态创建的对象(不使用 C++)?
我正在尝试创建一个具有类似于地图的界面的应用程序 - 给定一个键和一个对象,我的应用程序必须找到具有该键的对象是否存在并用新对象覆盖。如果没有,应用程序必须创建一个新对象并与密钥关联。
文档说动态管理的对象没有 ID,我发现访问它们的唯一方法是使用 objectName,这似乎需要 C++ 应用程序。
提前致谢。
有没有办法检查存在和访问 QML/javascript 中动态创建的对象(不使用 C++)?
我正在尝试创建一个具有类似于地图的界面的应用程序 - 给定一个键和一个对象,我的应用程序必须找到具有该键的对象是否存在并用新对象覆盖。如果没有,应用程序必须创建一个新对象并与密钥关联。
文档说动态管理的对象没有 ID,我发现访问它们的唯一方法是使用 objectName,这似乎需要 C++ 应用程序。
提前致谢。
您可以将 JavaScript 对象用作地图。您不能在 QML 中直接操作它,但您可以将处理此对象的所有代码移动到 JavaScript 文件中并将其作为模块包含在内。这是一个简单的例子:
地图.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