android - 基于 QML 模型的组件在 android 上具有未定义的 modelData

标签 android c++ qml cross-platform

我正在尝试在 Android(版本 4)上部署我的应用程序,但我在模型中遇到委托(delegate)问题 - 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 重新工作?

感谢您的帮助!

最佳答案

modelData 仅为“哑”模型定义,那些没有角色的模型,如 QStringList、javascrpit 数组、整数…… 就像模型有一个名为 modelData

的角色一样

对于 QAbstractListModel(一个自定义的 c++ 模型,或一个 ListModel),模型有一个角色列表,您可以使用它们来访问委托(delegate)中的模型数据。

在您的情况下,它应该是 fromWaypoint 或带有模型限定符 (model.fromWaypoint),如果您想避免阴影并明确显示。

相关文档在这里:http://doc.qt.io/qt-5/qtquick-modelviewsdata-modelview.html#models

关于android - 基于 QML 模型的组件在 android 上具有未定义的 modelData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52202910/

相关文章:

android - 在 Fragment 中处理 onNewIntent

javascript - 接收错误代码3、http_status null、body null、异常状态2

python - LHPDF : undefined symbol when running in Python

c++ - 如何正确使用 glDrawElements 和 glBindVertexArray

c++ - 在 QML 中绘制虚线贝塞尔曲线

qt - 在 Qt5.7 QtQuick2 应用程序模板中设置 Qml 上下文属性

qt - 切换图像时 CPU 使用率增加

用于 EditText 的 Android Material Design float 标签

android - android 中 chromecast 的一个简单示例?

c++ - QTreeWidgetItem : How can I get the selected item?