Я пытаюсь получить доступ к роли из ListView в QML. По сути, в моем QML есть следующее:
ListView {
id: myId
model: myModel
delegate: Item {
Text {
text: model.text
}
Text {
text: model.moreText
}
}
}
myModel
- это реализация QAbstractListModel. Часть QML этого компонента является повторно используемым, поэтому модель может иметь любое количество различных ролей с различными типами данных. Что я хотел бы сделать, так это привязать к значению данной роли свойства currentItem
ListView. Другими словами, я Мне бы хотелось, чтобы на странице был какой-то другой Компонент
, который мог бы привязать свойство к текущему выбранному элементу в 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, а приведение типов недоступно, поэтому я не уверен, что делать. Любые предложения приветствуются!
Спасибо!
Джек