在QML中访问运行时选定的模型角色

时间:2014-02-13 13:52:54

标签: qt qml

{QML/Qt-5.2, Win7}

访问角色的常用方法是使用model.roleName

    ListModel {
    id: mod
    ListElement { role0: "hello"; role1: "aaa" }
    ListElement { role0: "helloThere"; role1: "bbb" }
    }


//.....
Repeater {
model: mod
delegate: Text {//....
text: model.role0
}
}

如果我要求我有一个行编辑,我可以在运行时输入要考虑的角色,那么上述在运行时访问角色的方式就会失败。 但这似乎是等价的

Text {//...
text: model["role0"] //is this legal (it works btw) instead of model.role0 ?
}

现在它基本上是一个字符串,所以我可以动态输入角色,显示会根据指定的角色而改变。但这在任何地方都没有记载,只是偶然发现它。问题是,这(第二种方法)是否是一种标准的方法呢?否则,我可以在运行时指定角色的方式是什么?

1 个答案:

答案 0 :(得分:2)

您编写的表达式是javascript,javascript model.foomodel["foo"]在功能上是等效的。不要忘记你有javascript的强大功能:)