QStandardItemModel有隐藏列怎么获取选中的整行内容
时间: 2023-05-24 13:04:21 浏览: 105
如果要获取选中的整行内容,包括隐藏列,可以使用以下代码:
```python
# 获取选中的所有行
selected_rows = table_view.selectionModel().selectedRows()
# 遍历每一行
for row in selected_rows:
# 根据行号和列数创建 QModelIndex 对象
index = model.index(row.row(), 0)
# 使用索引获取整行数据
# 注意:这里使用的是 model.record() 方法,不是 model.data() 方法
record = model.record(index.row())
# 将整行数据转为列表
row_data = [record.value(i) for i in range(model.columnCount())]
# 打印整行数据
print(row_data)
```
在上面的代码中,我们首先使用 `selectedRows()` 方法获取选中的所有行。然后,遍历每一行,使用 `model.index(row.row(), 0)` 方法创建一个 `QModelIndex` 对象,这个对象包含了行号和列数。接着,我们使用 `model.record(index.row())` 方法获取整行数据,这里我们用的是 `QSqlTableModel` 的 `record()` 方法,而不是通常用来获取单元格数据的 `data()` 方法。最后,将整行数据转换为 Python 列表,并打印出来。这样我们就可以获取包括隐藏列的整行数据了。
阅读全文