如何在QML TableViewColumn委托中访问数据?

时间:2013-10-24 21:39:51

标签: qml qt5.1

如何访问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
            }
        }
    }

截至此类似问题“How do you access the roles of the currentItem from a listview in QML?”我尝试了所有类型的组合modelmodelDatacurrentItem以及类似model.role的内容。< / p>

如果我完全删除了委托,频率会正确显示。模型基于QAbstractListModel。任何提示?

顺便说一下,我可以在QML中看到调试委托中可用的属性吗?

- 根据Kakadu的评论进行编辑 -

        delegate {
            Text {
                text: "freq is " + frequency
            }
        }

给了我:ReferenceError: frequency is not defined

3 个答案:

答案 0 :(得分:6)

delegate: Text { text: view.model.get(styleData.row).frequency }

答案 1 :(得分:4)

你必须在te QAbstractItemModel中定义角色。

  

QHash YourClassModel :: roleNames()const {

roles[Qt::UserRole + 1] = "frequency";
return roles; 
     

}

答案 2 :(得分:3)

尝试使用styleData.value:

delegate: {
   Text { text: styleData.value }
}

它描述了here(寻找itemDelegate属性)