QTableView是一个显示表格数据的控件,它继承自QAbstractItemView类。下面介绍QTableView的用法:
-
添加QTableView控件
在Qt Designer中可以直接将QTableView拖放到窗口中,也可以在代码中创建QTableView实例并将其添加到布局中:
table_view = QTableView()
layout.addWidget(table_view)
-
设置数据模型
QTableView需要一个数据模型来提供数据,常用的数据模型有QStandardItemModel、QSqlTableModel和QSqlQueryModel等。以QStandardItemModel为例:
model = QStandardItemModel()
model.setColumnCount(3)
model.setRowCount(4)
for row in range(model.rowCount()):
for column in range(model.columnCount()):
item = QStandardItem(str(row * 100 + column))
model.setItem(row, column, item)
table_view.setModel(model)
上述代码创建了一个3列4行的表格,并将每个单元格的数据都设置为行号乘以100再加上列号(如第1行第2列为102)。
-
设置表头
可以通过QHeaderView设置表头,包括水平表头和垂直表头。例如:
horizontal_header = table_view.horizontalHeader()
horizontal_header.setSectionResizeMode(QHeaderView.Stretch)
vertical_header = table_view.verticalHeader()
vertical_header.setSectionResizeMode(QHeaderView.Stretch)
上述代码将水平表头和垂直表头的大小调整为与控件相同。
-
其他操作
QTableView还支持以下常见操作:
-
获取选中单元格的行列号:
selected_indexes = table_view.selectedIndexes() rows = set(index.row() for index in selected_indexes) cols = set(index.column() for index in selected_indexes)
-
设置单元格可编辑:
table_view.setEditTriggers(QAbstractItemView.DoubleClicked)
-
获取单元格数据:
model.data(model.index(row, column))
-
设置单元格数据:
model.setData(model.index(row, column), new_value)
以上是QTableView的主要用法,更多详细信息可以参考官方文档。