首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从嵌套模型填充QML ListModel

从嵌套模型填充QML ListModel
EN

Stack Overflow用户
提问于 2015-03-01 16:57:17
回答 2查看 2K关注 0票数 4

我有以下C++模型结构:

代码语言:javascript
运行
复制
Manager             // QAbstractListModel
   ↪ Slot           // QAbstractListModel
       ↪ Processor  // QAbstractListModel
            ↪ name  // Q_PROPERTY

在实例化时,我只将Manager引用传递给QML。我需要用ComboBox名称填充Processor,但我不知道如何填充这个嵌套结构。

下面是我计划拥有的代码(但现在不起作用):

代码语言:javascript
运行
复制
ComboBox {
    model: Repeater {
        model: manager
        delegate: Repeater {
            model: slot
            delegate:Repeater {
                model: processor
                delegate: ListModel {
                    ListElement {text: name}
                }
            }
        }
    }
}

我知道委托用于指定如何显示数据(这就是为什么ComboBox没有这个数据的原因),但我没有想法如何正确地实现这一点。

因此,我的问题是:如何递归地填充ListModel

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-03 21:14:32

我想出了以下解决方案来递归地填充一个ComboBox:

代码语言:javascript
运行
复制
ComboBox {
    id: comboBox
    model: ListModel {}
    textRole: "processorName"

    Repeater {
        model: manager
        delegate: Repeater {
            model: slot
            delegate: Repeater {
                model: processor
                Component.onCompleted: 
                    comboBox.model.append(
                        {"processorName": model.Processor.Name}
                    );
            }
        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2015-03-02 10:10:54

添加到返回另一个QAbstractListModel的QAbstractListModel角色中。

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

https://stackoverflow.com/questions/28796320

复制
相关文章

相似问题

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