我想在QML树视图中更改确定的父节点的子节点,我想迭代遍历每个子节点并更改我想要的属性,但我不知道如何从中获取子节点列表家长。 我有以下QML菜单:
TreeView {
id: tree
anchors.fill: parent
model: model
itemDelegate: CustomNode{
id: node
Menu {
id: menu
MenuItem {
text: "Show"
onTriggered: {
styleData.value.active = !!+state
}
}
}
MouseArea{
anchors.fill: parent
acceptedButtons: Qt.LeftButton
onClicked: {
idNode = styleData.value.vredId
menu.popup()
}
}
}
}
当我点击节点时,它会打开一个菜单,点击"显示"按钮更改所选节点的属性,从此节点我需要获取其子节点并更改在父节点上更改的相同属性。
我该怎么做?
答案 0 :(得分:1)
您可以使用DelegateModel
获取孩子的QModelIndex
。
DelegateModel
{
id:delegateModel
rootIndex: styleData.index
}
delegateModel.count // returns the number of children
delegateModel.modelIndex(i) // returns the model index of the ith element.
访问给定QModelIndex
的数据仍然不是那么容易,但已在this post中进行了描述。
正如我的评论中所建议的,在C ++中在模型方面实现这种逻辑可能更容易。