有什么方法可以在 QML/javascript 中检查是否存在并访问动态创建的对象(不使用 C++)?
我正在尝试创建一个具有类似于 map 的界面的应用程序 - 给定一个键和一个对象,我的应用程序必须定位是否存在具有该键的对象并用新对象覆盖。如果不是,应用程序必须创建一个新对象并与 key 相关联。
文档说动态管理的对象没有 ID,我发现访问它们的唯一方法是使用 objectName,这似乎需要 C++ 应用程序。
提前致谢。
最佳答案
您可以使用 JavaScript 对象作为 map 。您不能在 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
关于javascript - 检查/访问 QML 中动态创建的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11890196/