Я пытаюсь получить доступ к роли из 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
.
Если у кого-нибудь есть какие-либо предложения, я был бы очень признателен. Большое спасибо!
EDIT
Я нашел это:
http://comments.gmane.org/gmane.comp.lib.qt.qml/1778
Однако, похоже, это не работает для меня. Я получаю ошибки типа, когда пытаюсь использовать данные в моих сценариях QML, и нет никакого приведения типов, поэтому я не уверен, что делать. Любые предложения приветствуются!
Спасибо!
Jack