从QTableView检索数据可以通过以下步骤实现:
以下是一个示例代码,演示如何从QTableView检索数据:
# 导入必要的模块
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableView, QVBoxLayout, QWidget
from PyQt5.QtCore import Qt, QAbstractTableModel
# 自定义数据模型
class TableModel(QAbstractTableModel):
def __init__(self, data):
super().__init__()
self.data = data
def rowCount(self, parent):
return len(self.data)
def columnCount(self, parent):
return len(self.data[0])
def data(self, index, role):
if role == Qt.DisplayRole:
row = index.row()
col = index.column()
return str(self.data[row][col])
return None
# 创建应用程序和主窗口
app = QApplication([])
window = QMainWindow()
# 创建数据
data = [
['John', 'Doe', 'john.doe@example.com'],
['Jane', 'Smith', 'jane.smith@example.com'],
['Bob', 'Johnson', 'bob.johnson@example.com']
]
# 创建数据模型和表格视图
model = TableModel(data)
tableView = QTableView()
tableView.setModel(model)
# 设置布局并显示窗口
layout = QVBoxLayout()
layout.addWidget(tableView)
widget = QWidget()
widget.setLayout(layout)
window.setCentralWidget(widget)
window.show()
# 从QTableView检索数据
for row in range(model.rowCount(None)):
for col in range(model.columnCount(None)):
data = model.data(model.index(row, col), Qt.DisplayRole)
print(f"Row {row}, Column {col}: {data}")
在这个示例中,我们首先创建了一个自定义的数据模型TableModel,继承自QAbstractTableModel。然后,我们创建了一个包含示例数据的二维列表。接下来,我们创建了数据模型实例,并将其设置为QTableView的模型。最后,我们使用两个嵌套的for循环遍历整个表格,并使用数据模型的data()方法获取每个单元格的数据,并打印出来。
请注意,这只是一个简单的示例,实际应用中可能需要根据具体需求进行适当的修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云