Компоненты, основанные на моделях QML, не имеют modelData на Android - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь развернуть приложение на Android (версия 4), но у меня проблема с делегатами в моделях - ReferenceError: modelData is not defined.

Мой код

MapItemView {
    model: roadModel
    delegate: MapPolyline {
        line.width: 3
        line.color: "red"
        path: [
            modelData.fromWaypoint,
            modelData.toWaypoint
        ]
    }
}

Этот код должен соединять две точки на компоненте Map.

Все работает на GCC Ubuntu 16, но когда я пытаюсь развернуть его на Android, modelData просто перестает работать и не определено.

Как я могу заставить modelData снова работать?

Спасибо за помощь!

1 Ответ

0 голосов
/ 06 сентября 2018

modelData определено только для «тупых» моделей, без ролей, таких как QStringList, массив javascrpit, целое число, ... Это действует как если бы у модели была одна роль с именем modelData

Для QAbstractListModel (пользовательский c ++ или ListModel) модель имеет список ролей, которые вы используете для доступа к данным модели в делегате.

В вашем случае это должно быть fromWaypoint или с квалификатором модели (model.fromWaypoint), если вы хотите избежать затенения и быть явным.

Соответствующий документ находится здесь: http://doc.qt.io/qt-5/qtquick-modelviewsdata-modelview.html#models

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...