我正在尝试从 QML 中的 ListView 访问角色。本质上,我的 QML 中有这个:
ListView {
id: myId
model: myModel
delegate: Item {
Text {
text: model.text
}
Text {
text: model.moreText
}
}
}
myModel
是一个 QAbstractListModel 实现。其中的 QML 部分是一个可重用的组件,因此该模型可以具有具有各种数据类型的任意数量的不同角色。我想做的是绑定到currentItem
ListView 属性的给定角色的值。换句话说,我想Component
在页面上有一些其他的可以将属性绑定到 ListView 中当前选定的项目,如下所示:
Text {
text: myId.currentItem.text // Or myId.currentItem.model.text (or something similar)
}
请记住,我需要这个通用可用的,因为我会为许多模型类型做很多事情,并且我试图不为每个模型和 ListView 编写那种自定义代码。
访问当前选定项目的属性似乎应该很简单,但据我所知,这是不可能的。当只有一个角色时,模型似乎受到不同的对待,这一事实使问题变得更加复杂。我的意思是有时您通过访问您的角色,model.roleName
而当您只使用一个角色时modelData
。
如果有人有任何建议,我将不胜感激。非常感谢!
编辑
我找到了这个:
http://comments.gmane.org/gmane.comp.lib.qt.qml/1778
但是,这似乎对我不起作用。当我尝试在 QML 脚本中使用数据时遇到类型错误,并且没有可用的类型转换,所以我不知道该怎么做。欢迎任何建议!
谢谢!
杰克