javascript - 无法在 QML 中创建 map 数据类型吗?

标签 javascript qt dictionary qml

我正在尝试在 QML 的函数中创建 map 。我试过这个:

    var myMap= new Map()
    var length = myArray.count
    for (var i = 0; i < length; i++)
        myMap.set(i, true)

它不提示 Map 本身的创建,而是提示 set 方法。这是应用程序在运行时输出的内容:

TypeError: Property 'set' of object  is not a function

我将其用作 Map 可用方法的引用:

Map documentation

QML好像不支持调用set方法。我试图找到一些关于 QML 支持和不支持的文档,但找不到。这让我很难知道,因为我无法在编写和运行代码之前之后找到答案。

有没有人能够在 QML 中使用 Map 和/或知道在哪里可以找到有关 QML 支持的 Javascript 功能的文档?

最佳答案

我猜你误会了what's the Map object in QML .
我强烈怀疑这不是您期望的那样。

相反,QML 有 automatic type conversion between QVariantMap and JavaScript object .

这意味着当您在 QML 环境中工作并想要创建一个 map 时,您应该依赖纯 JavaScript 对象及其键值模型。

就是这样做的问题:

var myMap= { };
var length = myArray.count;
for (var i = 0; i < length; i++)
    myMap[i] = true;

关于javascript - 无法在 QML 中创建 map 数据类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37599362/

相关文章:

python - 无序列表作为字典键

javascript - 如何在 Redux 操作的 Promise 中发出多个 API 请求

c++ - QTimer 超时不会在单元测试中触发

c# - 为什么 ConcurrentDictionary.TryRemove 需要第二个参数?

python - 为什么dict.get(key)起作用但dict [key]不起作用?

c++ - QPlainTextEdit 上的 Qt 代码编辑器 如何选项卡代码

javascript - alasql-记录更新问题

javascript - 这些在 package.json 中使用下划线前缀的属性是什么?

新页面上的 Javascript 加载以将 anchor 移动到顶部固定元素下方

c++ - Qt ActiveX 动态调用 : bad parameter count