首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从QML访问嵌套QAbstractListModel

从QML访问嵌套QAbstractListModel
EN

Stack Overflow用户
提问于 2015-07-25 16:39:43
回答 1查看 623关注 0票数 3

我在C++中有一个分层(嵌套) C++,即Outer模型的项是Inner模型的实例,而类Inner的项是一些QObject派生的Data实例。Outer具有访问Inner项的submodel角色。

对应的QML代码在Repeater中嵌套一个ListViewListView正确地迭代Inner类型的项,我可以在ListView委托中检索Inner模型实例的项计数。

我遇到的问题是,Repeater只是不迭代Inner模型的Data实例。在C++模型的方法中使用调试打印,我看到

  • QML查询rowCount()Inner实例,但是
  • QML从不对data()实例调用Inner

QML代码如下所示:

代码语言:javascript
复制
import QtQuick 2.0
import QtQuick.Controls 1.3
import NestedModels 1.0  as Models

ScrollView {
    width: 1980; height:600
    Component {
        id: inner
        Item {
            Text {
                x:1000;	font.pointSize: 9
                text: "inner " + model.name
            }
        }
    }

    Component {
        id: outer
        Item {
            height: 40
            property var innerModel: model.submodel
            Text {
                font.pointSize: 9
                text: "outer " + model.objectName
                + ": inner " +  innerModel
            }

            Repeater {
                model: innerModel
                delegate: inner
            }
        }
    }

    ListView {
         Models.OuterModel { id: outerModel }
         model: outerModel
         delegate: outer
         Text {
             x: 200; y: 400;	font.pointSize: 9
             text: outerModel.objectName + ": " + outerModel.count + " rows. " + outerModel.getItem(0)
         }
     }
 }

EN

回答 1

Stack Overflow用户

发布于 2019-09-16 10:38:25

尝试使用单独的qml文件OuterDelegate.qml i有相同的问题,问题是您将内部模型不正确地传递给中继器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31628761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档