【问题标题】:QML model-based components have modelData undefined on android基于 QML 模型的组件在 android 上具有未定义的 modelData
【发布时间】:2018-09-06 11:18:34
【问题描述】:

我正在尝试在 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 再次工作?

感谢您的帮助!

【问题讨论】:

  • 什么是roadModel?据我所知modelData 适用于没有角色的简单模型。 MapItemView 仅支持 QAbstractItemModel,因此您应该改用角色。
  • roadModelQAbstractListModel 派生类
  • 好的,所以你必须使用角色。在你的情况下modelData 是什么?
  • 我使用了角色名称,现在可以使用了,谢谢您的帮助

标签: android c++ qml cross-platform


【解决方案1】:

modelData 只为“哑”模型定义,没有角色的模型,如 QStringList、javascrpit 数组、整数、... 就像模型有一个名为 modelData 的角色一样

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

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

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

【讨论】:

    猜你喜欢
    • 2016-04-13
    • 2014-07-23
    • 2023-03-25
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多