多语言展示
当前在线:475今日阅读:2今日分享:31

解决PyQt5的tableWidget数据行不能完全删除问题

在使用PyQt5里 tableWidget循环删除已生成的全部行数据时,存在数据行不能完全删除的问题,这里给出解决办法
工具/原料
1

PyQt5

2

tableWidget

方法/步骤
2

for rP in range(0, rowPosition):   self.tablewidget.removeRow(rP)循环删除,tablewidget 理论上看没问题但实际上是能清除掉一部分,总是有一部分不能正确清除

3

经过仔细研究测试。解决方案如下:采用逆序循环,不能用正序循环!#这句是关键! range(0, rowPosition)[::-1] 逆序循环for rP in range(0, rowPosition)[::-1]:           。。。

4

小结:tablewidget控件循环删除已有行,要用逆序range(0, rowPosition)[::-1]#先获得总行数 rowPosition rowPosition = self.tablewidget.rowCount()#这句是关键! range(0, rowPosition)[::-1] 逆序循环for rP in range(0, rowPosition)[::-1]:           self.tablewidget.removeRow(rP)OK了

注意事项
1

需要引入 from PyQt5.QtWidgets import QTableWidget, QTableWidgetItem

2

range(0, rowPosition)[::-1] 逆序循环 最关键

推荐信息