pyqt中的tablewight怎么填充数据
时间: 2024-09-17 09:01:18 浏览: 38
在PyQt中,你可以使用`QTableWidget`来创建表格,并通过它的内置属性和方法来填充数据。以下是基本步骤:
1. **初始化表单**:
首先,你需要导入所需的模块并实例化`QTableWidget`:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QTableWidget, QTableWidgetItem
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.table = QTableWidget()
```
2. **设置尺寸和列数**:
调整表格的大小,并指定需要的列数:
```python
self.table.setRowCount(10) # 设置行数,这里设为10行示例
self.table.setColumnCount(4) # 设置列数,例如有四列
```
3. **添加标题行**:
可以通过`setItem`方法给表头单元格赋值:
```python
headers = ["列1", "列2", "列3", "列4"]
for i, header in enumerate(headers):
self.table.setHorizontalHeaderItem(i, QTableWidgetItem(header))
```
4. **填充数据行**:
使用`setItem`方法逐行填充数据,如:
```python
data_rows = [
["行1_1", "行1_2", "行1_3", "行1_4"],
["行2_1", "行2_2", "行2_3", "行2_4"],
... # 根据需要填充更多的行
]
for row, rowData in enumerate(data_rows):
for col, item in enumerate(rowData):
self.table.setItem(row, col, QTableWidgetItem(item))
```
完整例子:
```python
app = QApplication([])
window = MyWindow()
window.show()
data_rows = [
["姓名", "年龄", "性别", "城市"],
["张三", 28, "男", "北京"],
["李四", 32, "女", "上海"],
]
# 初始化表格
window.table.setRowCount(len(data_rows))
window.table.setColumnCount(len(data_rows[0]))
# 添加标题行
headers = window.table.horizontalHeaderLabels()
for index, header in enumerate(headers):
window.table.setItem(index, 0, QTableWidgetItem(header))
# 填充数据行
for row, rowData in enumerate(data_rows):
for col, item in enumerate(rowData):
window.table.setItem(row, col, QTableWidgetItem(item))
app.exec_()
```
阅读全文