qmlTableModel的data函数方法,给出示例
时间: 2024-09-25 19:19:07 浏览: 27
QML中的`QtQuick.Controls`库提供了一个名为`TableView`的数据绑定控件,它通常配合`QAbstractItemModel`(如`QStandardItemModel`或自定义模型)一起使用。`data`方法是`QAbstractItemModel`中的核心方法之一,用于获取模型中指定项的数据。
`data`方法的基本语法如下:
```qml
model.data(item, role)
```
- `item`: 需要获取数据的`QModelIndex`对象,表示模型中的某个特定行和列组合。
- `role`: 定义了想要获取的数据类型,例如`Qt.DisplayRole`获取文本显示值,`Qt.DecorationRole`获取装饰元素等。
一个简单的示例,假设我们有一个`QStandardItemModel`,并且数据已经填充好:
```qml
import QtQuick 2.0
import QtQuick.Controls 2.0
ApplicationWindow {
width: 400
height: 300
visible: true
TableView {
model: itemModel
delegate: ItemDelegate { textProperty: "name" } // 使用内置的delegate显示text角色的数据
// 显示每个列表项的name属性
onCurrentIndexChanged: {
var data = itemModel.data(model.index, Qt.DisplayRole) // 获取当前选中的项的显示文字
console.log("Data:", data);
}
}
// 假设itemModel是一个QStandardItemModel,并且有"name"属性
ListModel {
id: itemModel
items: [
{"id": 1, "name": "Item 1"},
{"id": 2, "name": "Item 2"},
{"id": 3, "name": "Item 3"}
]
}
}
```
在这个例子中,当你在表格中选择一项,`onCurrentIndexChanged`槽会调用`data`方法获取并打印出所选项目的名称。
阅读全文