Как получить доступ к данным в делегате QML TableViewColumn?

Как получить доступ к текущему элементу в 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
            }
        }
    }

На этот похожий вопрос " Как вы получаете доступ к ролям currentItem из списка в QML? " Я пробовал все виды комбинаций model, modelData, currentItemи что-то вроде model.role,

Если я удалю делегата полностью, частота будет отображаться правильно. Модель основана на QAbstractListModel, Есть намеки?

Кстати, я могу видеть в отладке QML, какие свойства доступны в делегате?

Редактировать на основе комментария Какаду

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

дает мне: ReferenceError: frequency is not defined

3 ответа

Решение
delegate: Text { text: view.model.get(styleData.row).frequency }

Попробуйте использовать styleData.value:

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

Это описано здесь (ищите свойство itemDelegate)

Вы должны определить роль в QAbstractItemModel.

QHash YourClassModel:: roleNames () const {

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

}

Другие вопросы по тегам