qml中的treeview
时间: 2024-10-22 21:03:04 浏览: 47
在Qt Quick (QML) 中,TreeView 是一个用于显示层次结构数据的控件,类似于Windows资源管理器中的树形视图。它通常用于展示目录结构、文件系统、项目结构等需要组织成层级的数据。在 QML 文件中,你可以通过`TreeView`组件轻松地创建这种交互式的树状列表。
以下是一个基本的TreeView 使用示例:
```qml
import QtQuick 2.0
import QtQuick.Controls 2.0
Item {
id: root
width: parent.width
height: parent.height
TreeView {
anchors.fill: parent
model: ListModel { // 假设我们有一个包含对象的列表
items: [
{"name": "Item 1", "children": ["Subitem 1", "Subitem 2"]},
{"name": "Item 2"},
...
]
}
delegate: Rectangle {
Text {
text: item.name
}
}
onCurrentIndexChanged: {
console.log("Current index changed to: " + currentIndex)
}
// 显示展开/折叠功能
columns: [
{title: "Name", role: "name"}
]
columnWidths: [100] // 设置列宽
// 按名称排序
sort: SortOrder.Ascending
sortColumn: 0
}
}
```
在这个例子中,`ListModel` 提供了数据模型,每个条目可以有子项,`delegate` 是每个节点的样式模板,`onCurrentIndexChanged` 事件则会在当前选中的项改变时触发。
阅读全文