iQt*_*iQt 4 javascript qt dictionary qml
我正在尝试在QML中的函数中创建地图。我尝试了这个:
var myMap= new Map()
var length = myArray.count
for (var i = 0; i < length; i++)
myMap.set(i, true)
Run Code Online (Sandbox Code Playgroud)
它不会抱怨Map本身的创建,而是set方法。这是应用程序在运行时输出的内容:
TypeError: Property 'set' of object is not a function
Run Code Online (Sandbox Code Playgroud)
我以此为参考来了解Map的可用方法:
看起来QML不支持调用set方法。我试图找到一些有关QML支持和不支持的文档,但找不到。这使得很难知道,因为在编写和运行代码之后我无法找到。
是否有人能够在QML中使用Map和/或知道在哪里可以找到有关QML支持的Javascript功能的文档?
我想您会误解QML中的Map对象是什么。
我强烈怀疑那不是您所期望的。
相反,QML 在QVariantMap和JavaScript对象之间具有自动类型转换。
这意味着,当您在QML环境中工作并想要创建map时,应该依靠普通的JavaScript对象及其键值模型。
这是一个问题:
var myMap= { };
var length = myArray.count;
for (var i = 0; i < length; i++)
myMap[i] = true;
Run Code Online (Sandbox Code Playgroud)
这对我有用(Qt 5.14.2)。
...
Label {
property var stateInfo: (new Map([
[MyCustomCPPType.State.Idle, "Idle"],
[MyCustomCPPType.State.Collecting, "Collecting"],
[MyCustomCPPType.State.Done, "Done"]
]))
text: stateInfo.get(MyCustomCPPTypeInstance.state)
}
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3694 次 |
| 最近记录: |