TableWidget
时间: 2024-10-31 22:04:19 浏览: 23
TableWidget 是 Qt 家族(包括 PyQt5)中的一个组件,它是一种用于显示数据的表格控件。它是 `QTableView` 类的直接使用实例,常用于需要显示和交互大量结构化数据的应用程序中,如数据库查询结果、Excel 表格等。TableWidget 提供了丰富的功能,如排序、过滤、单元格选择、编辑等,并且支持自定义样式和布局。
使用 `TableWidget`,你可以通过设置模型(QAbstractItemModel),比如 `QStandardItemModel` 或 `QSqlTableModel`,来填充数据。然后,通过 `setHorizontalHeaderLabels()` 设置表头,`setItemDelegateForColumn()` 配置单元格编辑器,以及 `selectRow()`、`selectAll()` 等方法进行用户交互。
下面是一个基本的使用示例:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QTableView, QMessageBox
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QStandardItemModel
class MainApp(QWidget):
def __init__(self):
super().__init__()
self.model = QStandardItemModel() # 创建模型
self.table = QTableView(self) # 创建TableWidget
self.table.setModel(self.model) # 将模型绑定到表上
layout = QVBoxLayout()
layout.addWidget(self.table)
self.setLayout(layout)
# 添加一些数据
for i in range(5):
item = QStandardItem(f"Row {i}")
self.model.appendRow([item])
self.setWindowTitle('Table Widget Example')
self.show()
if __name__ == "__main__":
app = QApplication([])
ex = MainApp()
app.exec_()
```
阅读全文