Я пытаюсь получить доступ к роли из ListView в QML. По сути, у меня это в моем 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, и нет никакого выбора типа, поэтому я не уверен, что делать. Любые предложения приветствуются!
Спасибо!
Джек