我有以下C++模型结构:
Manager // QAbstractListModel ↪ Slot // QAbstractListModel ↪ Processor // QAbstractListModel ↪ name // Q_PROPERTY
在实例化时,我只将 Manager 引用传递给QML。我需要用 ComboBox 名称填充 Processor ,但我不知道如何填充这个嵌套结构。
Manager
ComboBox
Processor
下面是我计划拥有的代码(但现在不起作用):
ComboBox { model: Repeater { model: manager delegate: Repeater { model: slot delegate:Repeater { model: processor delegate: ListModel { ListElement {text: name} }
我知道委托用于指定如何显示数据(这就是为什么 ComboBox 没有这个数据的原因),但我没有想法如何正确地实现这一点。
因此,我的问题是:如何递归地填充 ListModel ?
ListModel
发布于 2015-04-03 21:14:32
我想出了以下解决方案来递归地填充一个ComboBox:
ComboBox { id: comboBox model: ListModel {} textRole: "processorName" Repeater { model: manager delegate: Repeater { model: slot delegate: Repeater { model: processor Component.onCompleted: comboBox.model.append(