QStandardItemModel setdata
时间: 2024-06-13 18:05:55 浏览: 126
QStandardItemModel角色控制及QTreeView添加不同的右键菜单 - 尘中远的程序开发记录 - CSDN博客1
QStandardItemModel的setData()函数用于设置模型中某个索引位置的数据。其中,第二个参数是要设置的数据,第三个参数是角色,用于指定数据的类型和用途。如果角色为Qt::EditRole,则表示数据可以被编辑,可以直接反映到模型中。如果角色为Qt::UserRole,则表示数据不能被编辑,无法往模型中设置值。
以下是一个QStandardItemModel setdata的例子:
```python
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QStandardItem, QStandardItemModel
# 创建一个QStandardItemModel对象
model = QStandardItemModel()
# 设置表头
model.setHorizontalHeaderLabels(['Name', 'Age', 'Gender'])
# 添加数据
item1 = [QStandardItem('Tom'), QStandardItem('18'), QStandardItem('Male')]
item2 = [QStandardItem('Lucy'), QStandardItem('20'), QStandardItem('Female')]
model.appendRow(item1)
model.appendRow(item2)
# 修改数据
index = model.index(0, 1) # 获取第1行第2列的索引
model.setData(index, '20', Qt.EditRole) # 将该位置的数据修改为'20'
# 输出修改后的数据
for i in range(model.rowCount()):
for j in range(model.columnCount()):
index = model.index(i, j)
print(model.data(index, Qt.DisplayRole), end='\t')
print()
```
输出结果为:
```
Tom 20 Male
Lucy 20 Female
```
阅读全文