如何在树视图中更改父属性时更改子属性
How to change child property when parent property change in a treeview?
我想在 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()
}
}
}
}
当我单击节点时,它会打开一个菜单,单击"显示"按钮后更改所选节点的属性,我需要从该节点获取其子节点并更改在父节点上更改的相同属性。
我该怎么做?
您可以使用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
的数据仍然不是那么容易,但本文已经描述了。
正如我在评论中所建议的,在C++的模型端实现此逻辑可能更容易。
相关文章:
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 视图中的参数推导失败:take_while
- C++概念:如何使用'concept'检查模板化结构的属性?
- 子目录是否继承属性,例如add_definitions,include_directories和父Cmakelist.t
- 通过指向指针数组的指针访问子类的属性
- MSVC是否支持C++11样式的属性而不是__declspec
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 类的C++属性似乎已重新初始化
- 如何维护资源管理器项目视图中当前可见的项目列表
- Qt Quick-如何仅从c++代码与qml属性交互
- 用概念检查属性的类型
- C++如何将同一类的实例作为属性
- 在另一个类视图中添加最多2个图表的正确方法是什么
- 按多个属性排序
- 主函数参数的属性
- OpenVR:向视图方向移动
- 修改"参数视图属性"面板 (5.7.0) 上的默认属性
- 如何在树视图中更改父属性时更改子属性
- MFC SDI在更改属性时从INI读取并更新视图字符串