QtQuick 视图代理的疑问?



  • 如图:
    图里的2个model是否是同一个?
    是同一个的话,model == lineListModel,怎么可以直接点出来stationText的值?
    不应该类似这样么?model[i].lineListModel

    0_1464938967567_1.png


  • 网站研运

    @taadis delegate中的model应该改为lineListModel,就好了。



  • @jcy delegate里用model.stationTextlineListModel输出是一样的,
    我的疑问是lineListModel是一个QListModel,取值的时候不应该是list[i].value类似这样通过索引位置来确定值么?
    图中的delegae里为什么可以直接用model.stationText,那索引位置怎么确定的?


  • 网站研运

    @taadis 不是啊。这个是封装了一层,要用get、set以及setProperty来设置或者读取值。



  • @taadis

    如果你的视图使用的是 ListModel 作为数据模型。

    假设你的数据模型有这些角色(列名) agename

    然后视图代码要获取这些字段。

    直接写 agename就行了。

    Component {
        Text {
            text: age + name    // 由视图进行对应(对应到 `index` )填写。
        }
    }
    

    首先 ListView 是可以知道 ListModel 的大小的。然后每一个视图代理,就是一条模型记录,记录就有列名(角色名)。ListView 会自动为每个视图代理中的出现的列名进行值填写。

    QML 中的视图

    QML 中的 ListView 中的隐藏秘技


登录后回复
 

与 萌梦社区 的连接断开,我们正在尝试重连,请耐心等待