python TableWidget
时间: 2025-01-04 20:24:27 浏览: 7
### 使用 `QTableWidget` 创建表格视图
在 PyQt 或 PySide 中,`QTableWidget` 是一种非常灵活且功能强大的组件,允许开发者创建具有固定数量列和行的表格。此组件支持单元格编辑、自定义上下文菜单以及事件处理等功能。
#### 基本属性设置
为了初始化一个简单的表单,可以按照如下方式操作:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem
app = QApplication([])
table_widget = QTableWidget()
table_widget.setRowCount(4) # 设置行数
table_widget.setColumnCount(2) # 设置列数
# 添加表头标签
header_labels = ['Column 1', 'Column 2']
table_widget.setHorizontalHeaderLabels(header_labels)
# 插入数据到指定位置
item = QTableWidgetItem('Item Text')
table_widget.setItem(0, 0, item)
```
上述代码片段展示了如何设定表格大小并填充基础内容[^4]。
#### 动态调整行列数目
除了静态定义外,还可以动态改变表格尺寸来适应不同的应用场景需求:
```python
def add_row(self):
row_position = self.table_widget.rowCount() # 获取当前总行数
self.table_widget.insertRow(row_position) # 新增一行于最后面
def remove_selected_rows(self):
selected_ranges = self.table_widget.selectedRanges()
for range_item in reversed(selected_ranges):
top_row = range_item.topRow()
bottom_row = range_item.bottomRow()
while bottom_row >= top_row:
self.table_widget.removeRow(bottom_row)
bottom_row -= 1
```
这里提供了两个方法分别用来增加新行与删除选中的多行记录。
#### 自定义样式与交互行为
对于更复杂的业务逻辑实现,则可以通过重载特定的方法来自定义外观及响应机制:
```python
class CustomTableWidgetItem(QTableWidgetItem):
def __init__(self, text=None, sort_key=None):
super().__init__()
self.setText(text if text is not None else "")
self.sortKey = sort_key
def __lt__(self, other):
return self.sortKey < other.sortKey
```
这段例子说明了怎样继承默认类以扩展其比较运算符的功能,从而影响排序效果。
阅读全文