如何在TableViewColumn
中访问当前项目?
TableView {
id: atcTableView
model: myatclist
...
TableViewColumn {
...
}
TableViewColumn {
id: atcTableViewColFreq
role: "frequency"
title: "Frequency"
width: 120
delegate: Component {
Text {
text: "Freq is " + currentItem / model / model.frequency
}
}
}
对于这个类似的问题"你如何从QML中的列表视图访问当前项目的角色?我尝试了各种组合model
、modelData
、currentItem
,以及类似model.role
。
如果我完全删除委托,频率会正确显示。模型基于QAbstractListModel
。有什么提示吗?
顺便说一句,我可以在 QML 调试中看到委托中有哪些属性可用吗?
--根据卡卡杜的评论编辑 --
delegate {
Text {
text: "freq is " + frequency
}
}
给我:ReferenceError: frequency is not defined
delegate: Text { text: view.model.get(styleData.row).frequency }
Yow 必须在 te QAbstractItemModel 中定义角色。
QHash YourClassModel::roleNames() const {
roles[Qt::UserRole + 1] = "frequency"; return roles;
}
尝试使用 styleData.value:
delegate: {
Text { text: styleData.value }
}
此处对此进行了描述(查找 itemDelegate 属性)