QTableWidget实时添加数据,自动按照某列数据排序
时间: 2024-03-16 22:45:34 浏览: 116
可以通过以下步骤实现QTableWidget实时添加数据,自动按照某列数据排序:
1. 创建QTableWidget并设置表头。
2. 创建一个列表来保存添加的数据。
3. 通过QTableWidget的setItem方法将数据添加到表格中。
4. 通过QTableWidget的sortItems方法对指定列进行排序。
5. 在新数据添加到列表后,调用sortItems方法对表格进行排序。
以下是示例代码:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem
from PyQt5.QtCore import Qt
class TableWidget(QTableWidget):
def __init__(self):
super().__init__()
# 设置表格列数和表头
self.setColumnCount(2)
self.setHorizontalHeaderLabels(['Name', 'Score'])
# 设置表格排序方式
self.setSortingEnabled(True)
self.sortItems(1, Qt.DescendingOrder)
# 存储添加的数据
self.data = []
def addData(self, name, score):
# 将新数据添加到列表中
self.data.append((name, score))
# 将新数据添加到表格中
row = self.rowCount()
self.insertRow(row)
self.setItem(row, 0, QTableWidgetItem(name))
self.setItem(row, 1, QTableWidgetItem(str(score)))
# 对表格按照第二列(分数)进行排序
self.sortItems(1, Qt.DescendingOrder)
```
在使用时,可以调用addData方法实现实时添加数据并按照分数自动排序:
```python
app = QApplication([])
table = TableWidget()
table.show()
# 添加数据并自动排序
table.addData('Alice', 90)
table.addData('Bob', 80)
table.addData('Charlie', 95)
app.exec_()
```
阅读全文