pyqt5tablewidget
时间: 2025-05-09 22:16:18 浏览: 17
### PyQt5 中 QTableWidget 组件的用法
QTableWidget 是 PyQt5 提供的一个表格控件,允许开发者创建具有行列结构的数据展示界面。它继承自 QTableView 并提供了内置模型来管理数据[^1]。
#### 创建 QTableWidget 的基本方法
可以通过 `setRowCount` 和 `columnCount` 方法设置表格的行数和列数。通过 `setItem(row, column, item)` 可以为指定单元格赋值。以下是实现一个简单 QTableWidget 表格的例子:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QTableWidget, QTableWidgetItem, QVBoxLayout
class TableExample(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
table_widget = QTableWidget()
table_widget.setRowCount(4) # 设置行数
table_widget.setColumnCount(3) # 设置列数
# 填充表格内容
for row in range(4):
for col in range(3):
item = QTableWidgetItem(f"Item {row},{col}")
table_widget.setItem(row, col, item)
layout = QVBoxLayout()
layout.addWidget(table_widget)
self.setLayout(layout)
self.setWindowTitle('QTableWidget Example')
if __name__ == '__main__':
app = QApplication([])
window = TableExample()
window.show()
app.exec_()
```
上述代码展示了如何初始化一个带有四行三列的 QTableWidget,并填充一些示例数据到其中。
#### 自定义表头名称
可以使用 `setHorizontalHeaderLabels` 或者 `setVerticalHeaderLabels` 来分别设定水平方向或者垂直方向上的表头标签名:
```python
header_labels = ['Column 1', 'Column 2', 'Column 3']
table_widget.setHorizontalHeaderLabels(header_labels)
```
这会将默认的数字序号替换为更具体的描述性文字作为列标题。
#### 获取选中的单元格信息
当用户点击某个单元格时,程序可能需要获取该单元格的内容或其他属性。下面是一个简单的例子说明如何捕获当前被选择项的信息:
```python
def on_cell_clicked(row, column):
print(f'Cell clicked at Row:{row}, Column:{column}')
table_widget.cellClicked.connect(on_cell_clicked)
```
这里我们连接了一个信号处理器函数至 cellClicked 事件上,每当有新的单元格被点击的时候就会触发这个回调函数并打印相应的坐标位置。
阅读全文
相关推荐


















