如何显示分层表

时间:2016-11-11 21:33:33

标签: qt qml

我有一个继承自QAbstractItemModel的自定义模型。它实现了一个两深的列表(第一层有n个元素,每个元素有m个子元素)。我可以成功地将GridView的模型绑定到第一层。我如何绑定嵌套的ListView以显示第二层元素?

GridView {
    model: myModel
    delegate: ColumnLayout {
        Text { text: "First layer" }
        ListView {
            model: // What do I put here?
            delegate: Text { text: "Second layer" }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用DelegateModel。

DelegateModel有一个名为rootIndex的属性,您可以使用该属性告诉ListView将模型的根目录移动到其中一个子列表的开头。

ListView {
    model: DelegateModel {
        model: myModel
        delegate: {...}
        rootIndex: index
    }
}

其中index是GridView中附加的属性,指向子条目的父条目。